首页 > 解决方案 > 无法从 for 循环中的列表中提取字典

问题描述

我想遍历字典列表,但它给了我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)

例外-

回溯(最后一次调用):文件“C:/Users/Derick/PycharmProjects/Puthon3_2019/dictionaries2.py”,第 14 行,在 for k, v in users_dict.items(): # failed at this line AttributeError: 'str ' 对象没有属性 'items'

但是,如果我正在访问像下面这样的字典工作正常 -

print(user_list[0].items())

我给我——

dict_items([('last', 'fermi'), ('first', 'enrico'), ('username', 'efermi')])

标签: pythonpython-3.x

解决方案


迭代列表时不能添加到列表中。user_list.append(v)将字符串添加到字典列表中,并导致下一次迭代失败,因为它试图.items()在字符串中执行。


推荐阅读