python - 在列表中迭代字典
问题描述
我在列表中迭代字典时遇到了一些麻烦。
我有一个看起来像这样的列表:
mylist[0]
{'_id': ObjectId('aleatoryID'),
'created_at': datetime.datetime(2018, 3, 22, 11, 58, 23, 585000),
'person': {'id': '00115500',
'scores': {'SCORE_3': {'@score': '45'}, 'SCORE_1': 205, 'SCORE_2': 487}}}
遍历 SCORE_1 和 SCORE_2 很好,我的问题是 SCORE_3,因为它包含一个子结构。这是我的尝试:
persons = []
for document in mylist:
persons.append((document['person'].get('id'),
document['created_at'],
document['person']['scores'].get('SCORE_1'),
document['person']['scores'].get('SCORE_2'),
document['person']['scores']['SCORE_3'].get('@score')
))
KeyError: 'SCORE_3'
在这种情况下迭代字典的正确方法是什么?
解决方案
根据您的示例,这应该有效:
document['person']['scores'].get('SCORE_3')['@score']
或者只是索引而不使用get
:
document['person']['scores']['SCORE_3']['@score']
推荐阅读
- javascript - Reduce 和三元运算符。reduce 方法中的三元运算符在“else”部分为零并返回错误答案
- sql-server - 如何使用两个外键引用添加下拉列表
- c - 我在这本 K&R c 语言书籍练习 2.3 中遇到错误
- node.js - Docusign NodeJS 信封视图:createRecipient UNKNOWN_ENVELOPE_RECIPIENT
- javascript - Discord.js 从 message.content 获取 Unicode 表情符号
- replace - 用交通量的时间序列替换栅格化路段 ID 的向量,并在 R 中进行焦点统计
- javascript - javascript打开一个新窗口,设置其内容和位置,而不重新加载该位置以确保安全
- apache-kafka - 使用带 MSK 的 Debezium MySQL 连接器显示“INVALID_REPLICATION_FACTOR”
- flutter - 如何在颤振应用程序中创建本地主机?
- python - 我的 RNN 是否仅在 1 个或 2 个样本上进行训练?