Python新手求助:如何从嵌套JSON中提取指定职位的信息?
提取嵌套JSON中指定职位的人员信息
步骤1:遍历顶级键
先遍历JSON对象的每个顶级键(比如ABCDE、VWXYZ),获取每个键对应的人员列表。
步骤2:筛选符合条件的人员
对每个人员列表,筛选出Title字段等于"General Manager"的条目。
完整代码示例
假设你的原始JSON数据已加载到data变量中(从文件读取的话用json.load(),直接用字符串则用json.loads()):
import json # 替换成你的实际JSON数据 raw_json = ''' { "ABCDE": [ {"Name": "John Doe", "Title": "General Manager", "Department": "Operations"}, {"Name": "Jane Smith", "Title": "Senior Engineer", "Department": "Tech"} ], "VWXYZ": [ {"Name": "Bob Brown", "Title": "General Manager", "Department": "Sales"}, {"Name": "Alice Lee", "Title": "Marketing Specialist", "Department": "Marketing"} ] } ''' # 加载JSON数据 data = json.loads(raw_json) # 方案1:只提取符合条件的人员列表 result_list = [] for _, employees in data.items(): managers = [emp for emp in employees if emp.get("Title") == "General Manager"] result_list.extend(managers) # 方案2:保留顶级键与对应经理的关联(按需选择) result_dict = { key: [emp for emp in employees if emp.get("Title") == "General Manager"] for key, employees in data.items() } # 打印结果(以方案1为例) print(json.dumps(result_list, indent=2))
期望输出示例
若使用方案1,输出为:
[ { "Name": "John Doe", "Title": "General Manager", "Department": "Operations" }, { "Name": "Bob Brown", "Title": "General Manager", "Department": "Sales" } ]
关键细节
- 用
emp.get("Title")替代emp["Title"],能避免因部分人员缺少Title字段引发的KeyError。 - 两种方案可根据需求切换:只需要人员信息选方案1,要保留顶级键关联选方案2。
内容的提问来源于stack exchange,提问作者mperera
相关产品推荐
相关产品推荐

