python - 遍历一个 python 字典列表,其中可能包含更多的字典列表等
问题描述
我似乎总是被困在这个问题上,所以想知道你是否可以提供帮助。我有一个包含其他列表和更多词典的词典列表,我永远不知道有多少。如果我想搜索一个特定的值,我该怎么做?例如,
[{'department_id': 'DEP1', 'students': [{'username': 'tim', 'email_address': 'tim@college.com'}]},
{'department_id': 'DEP2', 'students': [{'username': 'steve', 'email_address': 'steve@college.com'}]},
{'department_id': 'DEP3', 'students': [{'username': 'John', 'email_address': 'john@college.com'}, {'username': 'Helen'}]}]
采用这个数据结构,我想搜索 steve@college.com 的电子邮件地址并返回他属于 DEP2。
当结构固定时,有很多例子,但我正在努力处理列表中的字典,这些字典可能在进一步的字典列表中,等等。
解决方案
def find_department(data, email):
for sub in data:
if sub['students'][0]['email_address'] == email:
return sub['department_id']
>>> find_department(data, 'steve@college.com')
'DEP2'
推荐阅读
- javascript - 如何在 Vue.js 3 中调试组合 API?
- vuejs2 - Vue.js 2 + ckeditor5 与提及插件
- tensorflow - 模型预测:不兼容的形状
- reactjs - 如何更改组件中的道具作为道具传递给另一个组件
- android - Android textview,将包含字符的文本分成几行
- r - 计算 R 的滚动投资(通过再投资回报)
- java - 尝试为 Minesweeper 创建 JButton 网格,但直到 MouseOver 网格才会显示
- javascript - JS:JSON数组删除具有重复主键的条目
- assembly - XNOR 两个 8 位块中的 64 位寄存器
- azure-data-explorer - 库斯托 | Azure 数据资源管理器 | extractjson() 什么都不返回