首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用python3迭代字典列表

如何用python3迭代字典列表
EN

Stack Overflow用户
提问于 2019-09-22 15:42:06
回答 4查看 77关注 0票数 0

循环遍历字典结果错误列表:

AttributeError:'list‘对象没有属性'items’

改变:

代码语言:javascript
复制
for the_key, the_value in bucket.items():

至:

代码语言:javascript
复制
for the_key, the_value in bucket[0].items():

结果第一要素。我想捕捉所有的元素

代码语言:javascript
复制
bucket = [{'Name:': 'Share-1', 'Region': 'ap-south-1'}, {'Name:': 'Share-2', 'Region': 'us-west-1'}]


for the_key, the_value in bucket.items():
    print(the_key, 'corresponds to', the_value)

实际结果:

AttributeError:'list‘对象没有属性'items’

需要产出:

代码语言:javascript
复制
Name: Share-1
Region: ap-south-1

Name: Share-2
Region: us-west-1
EN

回答 4

Stack Overflow用户

发布于 2019-09-22 15:45:07

因为bucket是一个列表,而不是dict,所以您应该先遍历它,对于每个dict,迭代它是items

代码语言:javascript
复制
bucket = [{'Name:': 'Share-1', 'Region': 'ap-south-1'}, {'Name:': 'Share-2', 'Region': 'us-west-1'}]

for d in bucket:
    for the_key, the_value in d.items():
        print(the_key, 'corresponds to', the_value)

输出:

代码语言:javascript
复制
Name: corresponds to Share-1
Region corresponds to ap-south-1
Name: corresponds to Share-2
Region corresponds to us-west-1
票数 1
EN

Stack Overflow用户

发布于 2019-09-22 15:44:53

你可以试试这个:

代码语言:javascript
复制
for dictionary in bucket:
    for key, val in dictionary.items():
        print(the_key, 'corresponds to', the_value) 
票数 0
EN

Stack Overflow用户

发布于 2019-09-22 15:45:15

您的数据有两个层,因此需要两个循环:

代码语言:javascript
复制
for dct in lst:
    for key, value in dct.items():
        print(f"{key}: {value}")
    print() # empty line between dicts
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58050798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档