如何打印嵌套字典中的键?

2024-09-30 20:26:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试着把“动物”字典的钥匙印出来。你知道吗

life = {
    'animals': {
        'cats': ['Henri', 'Grumpy', 'Lucy'],
        'octopi': '',
        'emus': '',
        },
    'plants': '',
    'other': ''
    }

这就是我一直尝试的。它给了我正确的结果,但它也给了我一个错误在最后,我不明白为什么。你知道吗

or k, v in life.items():
    for k1, v1 in v.items():
        print(k1)
for k, v in life.items():
    for k1, v1 in v.items():
        if 'animals':
            print(k1)

这是我不断得到的错误的结果。你知道吗

cats
octopi
emus
Traceback (most recent call last):
  File "<pyshell#14>", line 2, in <module>
    for k1, v1 in v.items():
AttributeError: 'str' object has no attribute 'items'

Tags: infor字典错误itemsk1钥匙v1
3条回答

问题是不是所有的值都是字典。试一试:

for k in life.keys():
    if type(life[k]) is dict:
        for k1 in life[k].keys():
            print(k1)

它返回鸸鹋,猫,和章鱼给你目前的字典。你知道吗

如果要打印所有密钥,可以执行以下操作:

def print_keys(dic):
    for key, value in dic.items():
        print(key)
        if isinstance(value, dict):
            print_keys(value)

但是如果你知道你想打印什么动物的钥匙,你可以:

print(life['animals'].keys()) # dict_keys(['cats', 'octopi', 'emus'])
# or
print(*[key for key in life['animals']]) # cats octopi emus
# or a normal loop like in the other answer.

这应该对您有用,嵌套字典键可以通过使用dict[key0][key1][key2]等进行访问

for key in life["animals"]:
    print(key)

相关问题 更多 >