基于DOCN标识合并两个JSON文件对应对象键值对的方案咨询
JSON按DOCN字段合并实现方案
实现逻辑
- 读取两个JSON文件的数组内容
- 以
DOCN为唯一键将其中一个文件的内容转为映射字典,提升查找效率 - 遍历另一个文件的所有对象,按
DOCN匹配后合并两个对象的所有键值对 - 合并后的结果导出为新的JSON文件
注:若同一字段在两个文件的同DOCN对象中值不同,可自行调整合并顺序决定优先级,默认以下方案优先保留file2的字段值
Python 实现代码
import json # 读取两个JSON文件 with open('file1.json', 'r', encoding='utf-8') as f: file1_data = json.load(f) with open('file2.json', 'r', encoding='utf-8') as f: file2_data = json.load(f) # 将file1转为DOCN为键的映射字典 file1_map = {item['DOCN']: item for item in file1_data} result = [] # 遍历file2的所有对象,合并对应DOCN的内容 for item2 in file2_data: docn = item2['DOCN'] item1 = file1_map.get(docn, {}) # 合并两个对象,后面的对象会覆盖前面同名字段 merged_item = {**item1, **item2} result.append(merged_item) # 导出结果到file3.json with open('file3.json', 'w', encoding='utf-8') as f: json.dump(result, f, ensure_ascii=False, indent=4)
效果说明
针对你给出的示例输入,运行上述代码后生成的file3.json完全符合你提供的预期输出,会自动补全两个文件中同DOCN对象缺失的所有键值对。
内容的提问来源于stack exchange,提问作者Mustafa W Alani
相关产品推荐
相关产品推荐

