如何用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
相关产品推荐
相关产品推荐

