代码之家  ›  专栏  ›  技术社区  ›  rodee

如何有选择地从python字典中获取值

  •  0
  • rodee  · 技术社区  · 6 年前

    我读了一个JSON文件,创建了一个字典,并试图用它创建一个属性文件 key=value 仅使用两个属性格式化( found location )从它那里。在字典下面,我需要创建一个包含内容的文件

    found=bike.tar.gz
    location=china
    

    以下词典的内容,将采用相同的格式,并且始终只有一个“已找到”项。

    >>> pprint(zdict)
    {
     'found': {
        'bike.tar.gz': {
               'imported': False,
               'used': True,
               'location': 'china'
                }
         }
    }
    

    我试过:

    >>> dict(list(zdict.values())[0]).keys()
    dict_keys(['bike.tar.gz'])
    

    无法超越这个。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Jean-François Fabre    6 年前

    复杂的部分是获取键值,因为这是一个特例:字典的值只有一个键。所以转换为list并获取第一个元素。

    zdict = {
     'found': {
        'bike.tar.gz': {
               'imported': False,
               'used': True,
               'location': 'china'
                }
         }
    }
    
    bike = list(zdict["found"])[0]
    print("found={}".format(bike))
    print("location={}".format(zdict["found"][bike]["location"]))
    

    印刷品:

    found=bike.tar.gz
    location=china
    

    但是这种格式可能设计为在“found”键下有几个dict,所以使用循环来打印它们(也适用于您的示例,避免列表为空时崩溃):

    for bike,items in zdict["found"].items():
        print("found={}".format(bike))
        print("location={}".format(items["location"]))