我想遍历字典列表,但它给了我AttributeError
这是我的密码-
user_list = []
new_user = { 'last': 'fermi',
'first': 'enrico',
'username': 'efermi', }
user_list.append(new_user)
new_user = { 'last': 'fermi2',
'first': 'enrico2',
'username': 'efermi2', }
user_list.append(new_user)
for users_dict in user_list:
for k, v in users_dict.items(): # fails at this line
if(k == 'username'):
user_list.append(v)
例外-
Traceback (most recent call last): File "C:/Users/Derick/PycharmProjects/Puthon3_2019/dictionaries2.py", line 14, in for k, v in users_dict.items(): # fails at this line AttributeError: 'str' object has no attribute 'items'
不过,如果我使用下面这样的词典,效果会很好-
print(user_list[0].items())
我给我-
dict_items([('last', 'fermi'), ('first', 'enrico'), ('username', 'efermi')])
您正在添加与您正在迭代的相同的列表。在下一次迭代中,for循环从该列表中选择一个字符串而不是dict,这就是得到错误的地方
不能在对列表进行迭代时将其添加到列表中
user_list.append(v)
将一个字符串添加到字典列表中,它会导致下一次迭代失败,因为它试图在字符串中执行.items()
正如其他人所说,您将
v
作为字符串附加到由dict组成的迭代列表中,以字符串和字典的混合形式结束,这是不可取的。我认为这是一种打字错误,可以通过一个简单的:或更好:
相关问题 更多 >
编程相关推荐