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

Python:合并3个含重复键的JSON文件并保留最后文件内容

使用Python合并多个JSON文件并保留最后一个文件的重复键内容

问题描述

现有三个JSON文件,部分顶级键存在重复,需要合并为一个JSON文件,合并规则为:重复的键以最后一个文件中的内容为准。

三个源文件内容如下:

// file1.json
{
  "A111": {
       "KEY1" : "AAA1",
       "KEY2" : "AAA2"
  }
}
// file2.json
{
  "B222": {
       "KEY1" : "BBB1",
       "KEY2" : "BBB2"
  }
}
// file3.json
{
  "A111": {
       "KEY1" : "CCC1",
       "KEY2" : "CCC2"
  }
}

期望合并后的filemerged.json内容:

{
  "A111": {
       "KEY1" : "CCC1",
       "KEY2" : "CCC2"
  },
  "B222": {
       "KEY1" : "BBB1",
       "KEY2" : "BBB2"
  }
}

解决方案代码

使用Python的json模块即可完成需求,核心逻辑是按顺序读取文件,用后读取的字典覆盖前面的同名键:

import json

# 定义要合并的文件列表,顺序必须是file1 -> file2 -> file3
files_to_merge = ["file1.json", "file2.json", "file3.json"]
merged_data = {}

# 遍历文件,依次合并到结果字典
for file_path in files_to_merge:
    with open(file_path, 'r', encoding='utf-8') as f:
        data = json.load(f)
        # 使用update方法,新字典的键会覆盖已有键
        merged_data.update(data)

# 将合并结果写入新文件
with open("filemerged.json", 'w', encoding='utf-8') as f:
    json.dump(merged_data, f, indent=2)

关键说明

  • 文件顺序:必须严格按照file1.json、file2.json、file3.json的顺序读取,因为dict.update()方法会用新字典中的键值对覆盖结果字典中已存在的同名键,这样file3.json的内容会最终保留。
  • 编码处理:读取和写入时指定encoding='utf-8',避免中文或特殊字符出现乱码问题。
  • 格式化输出:json.dump()的indent=2参数让输出的JSON文件更易读,和示例格式一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 02:35:21