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

问题描述 投票:0回答:1

我读了一个JSON文件并创建了一个字典,并试图用key=value格式创建一个属性文件,只有几个属性(foundlocation)。从字典下面,我需要创建一个包含内容的文件

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'])

无法超越这一点。

python-3.x
1个回答
0
投票

复杂的部分是获取键值,因为它是一个特例:有一个键作为字典的值。所以转换为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

但是这种格式可能设计为在“找到”键下有几个dicts,所以使用循环将它们全部打印出来(也适用于你的例子,如果列表为空则避免崩溃):

for bike,items in zdict["found"].items():
    print("found={}".format(bike))
    print("location={}".format(items["location"]))
© www.soinside.com 2019 - 2024. All rights reserved.