Python 使用嵌套字典获取类型错误
我正在编写一个简单的程序,我的嵌套字典值返回一个整数并得到一个Python 使用嵌套字典获取类型错误,python,Python,我正在编写一个简单的程序,我的嵌套字典值返回一个整数并得到一个KeyError时遇到了这个问题 我尝试过将密钥初始化为字典,但它似乎仍然不起作用 people = { 1: { 'name': 'John', 'age': '27', 'sex': 'Male' }, 2: { 'name': 'Marie', 'age': '22', 'sex': 'Female' }
KeyError
时遇到了这个问题
我尝试过将密钥初始化为字典,但它似乎仍然不起作用
people = {
1: {
'name': 'John',
'age': '27',
'sex': 'Male'
},
2: {
'name': 'Marie',
'age': '22',
'sex': 'Female'
}
}
todays_names = {}
x=1
for item in people:
home = people[x]['name']
todays_names[x] = {}
todays_names[x]['home'] = home
x += 1
print(todays_names)
for item in todays_names:
print(item['home'])
我希望它能为每个项目打印John和Marie,但事实并非如此。当我打印字典时,它看起来像:
{1: {'home': 'John'}, 2: {'home': 'Marie'}}
尽管这对我来说似乎是有效的。问题是您没有正确访问嵌套字典。这一行:
for item in todays_names:
print(item['home'])
正在引发错误,因为item是外部字典的键,而home是嵌套字典的键。您的打印语句如下所示:
# item = 1
print(1['home'])
for item in todays_names:
print(todays_items[item]['home'])
这是一个错误。试着这样做:
# item = 1
print(1['home'])
for item in todays_names:
print(todays_items[item]['home'])
这将为您提供预期的输出,因为
todays\u items
是字典,item
是外部级别的键,home
是嵌套字典的键。这将打印John
和Marie
默认情况下,通过字典的for循环将返回键(因此在人员
、1
和2
的情况下)。如果需要,您可以对todays_names.values()`中的项使用。或者两者兼得:对于key,value in some_dict.items()
当您在字典中使用有序数字作为键时,这标志着使用列表可能是一个更好的选择。谢谢,这很有效,我对python相当陌生,所以我错过了该语法。