首页 > 解决方案 > 遍历一个 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。

当结构固定时,有很多例子,但我正在努力处理列表中的字典,这些字典可能在进一步的字典列表中,等等。

标签: pythonlistdictionary

解决方案


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'

推荐阅读