You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 22:45:55