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

如何用Python合并JSON数据,满足规则并生成嵌套字典?

解决方案

1. 数据类型修正函数

首先处理数据类型不一致的问题:employee中的ID是列表格式,而department里的员工/经理ID都是整数,需要统一类型。我们可以写一个简单的函数来修正这类数据:

def fix_data_types(emp_data):
    # 将ID从列表转为整数
    if isinstance(emp_data["ID"], list) and len(emp_data["ID"]) > 0:
        emp_data["ID"] = emp_data["ID"][0]
    return emp_data

2. 合并数据到指定经理下

接下来找到ID为3的经理,把修正后的员工数据添加到他的employees列表中:

# 原始数据
department = [
 {"ID": 1, "Name": "John", "Role": "Manager", "employees" :[
 {"ID": 4, "Name": "Mike", "Role": "Engineer"}]},
 {"ID": 3, "Name": "Sam", "Role": "Manager", "employees" :[]
 }]
employee = { "ID": [2],"Name": "Jack", "Role": "Analyst"}

# 修正员工数据类型(用copy避免修改原数据)
fixed_employee = fix_data_types(employee.copy())

# 查找ID为3的经理并添加员工
for manager in department:
    if manager["ID"] == 3:
        manager["employees"].append(fixed_employee)
        break

3. 预期输出

执行上述代码后,department将变为符合要求的嵌套字典结构:

[
    {
        "ID": 1,
        "Name": "John",
        "Role": "Manager",
        "employees": [
            {"ID": 4, "Name": "Mike", "Role": "Engineer"}
        ]
    },
    {
        "ID": 3,
        "Name": "Sam",
        "Role": "Manager",
        "employees": [
            {"ID": 2, "Name": "Jack", "Role": "Analyst"}
        ]
    }
]

内容的提问来源于stack exchange,提问作者Sebastian Hanania

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 12:38:19