如何从内部有字典的字典中提取信息以获取信息的句子

时间:2019-10-16 12:08:05

标签: python dictionary

我对Python还是很陌生,我在用简单的代码创建字典并尝试在其中打印信息的过程中挣扎。 我创建了一个名为pets的字典,其中包含了宠物的名字作为键。这些值是包含有关宠物的信息的字典。

我想用一句话打印出宠物的名字和有关宠物的信息。

如下面的代码所示,我正在尝试创建一个for循环,该循环将为每个宠物打印一个句子。

pets = {
    'maxi': {
    'owner':'Laura',
     'favorite food':'wiskas'
    },
    'chester': {
    'owner':'Emilia',
    'favorite food':'lula'
        }
    }

print(pets)
for name,info in pets.items():
    print(name + "'s owner and favorite food are " + name['owner'] + ' and ' + name['favorite food'])

我收到以下错误:

  

回溯(最近一次通话最后一次):文件“ pets.py”,第14行,在          打印(名称+“的所有者和最喜欢的食物是” +名称['所有者'] +'和'+名称['最喜欢的食物'])   TypeError:字符串索引必须为整数

2 个答案:

答案 0 :(得分:2)

使用for name,info in pets.items()循环时,name实际上是一个字符串。这就是为什么会出现此错误的原因:您正在尝试访问字符串的元素。 您需要使用info来访问内部值:

for name, info in pets.items():
    print(name + '\'s owner and favorite food are ' + info['owner'] + ' and ' + info['favorite food'])

答案 1 :(得分:0)

尝试

for x in pets:
    print(x + "'s owner and favorite food are " + pets[x]['owner'] + ' ' + pets[x]['favorite food'])    

>>> maxi's owner and favorite food are Laura wiskas
>>> chester's owner and favorite food are Emilia lula

您的错误是“名称['所有者'] +'和'+名称['最喜欢的食物']” <-这个 由于您必须首先引用字典中的项目,因此在我们的示例中,“ x”或“ name”可以随意命名,因此您想输入他的密钥以命名,因此,pets [name] ['owner' ]除了您选择其他键外,食物也一样,在我们的例子中是“最喜欢的食物”,我希望这可以为您清除一些东西:D