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

如何合并两个JSON文件,实现嵌套对象的属性融合?

合并嵌套JSON对象属性的实现方案

假设你的两个JSON文件结构如下:

file1.json

{
  "ONE": {
    "A": "valueA1",
    "B": "valueB1",
    "C": "valueC1"
  },
  "TWO": {
    "A": "valueA2",
    "B": "valueB2",
    "C": "valueC2"
  }
}

file2.json

{
  "ONE": {
    "D": "valueD1"
  },
  "TWO": {
    "D": "valueD2"
  }
}

用Python实现合并

核心思路是遍历第一个JSON的顶级键,将第二个JSON对应键下的属性合并到第一个的嵌套对象中,代码如下:

import json

# 读取两个JSON文件
with open('file1.json', 'r') as f1:
    data1 = json.load(f1)

with open('file2.json', 'r') as f2:
    data2 = json.load(f2)

# 合并对应嵌套对象的属性
for key in data1:
    if key in data2:
        # 将data2中对应键的属性更新到data1的嵌套对象
        data1[key].update(data2[key])

# 写入合并后的文件
with open('merged.json', 'w') as merged_file:
    json.dump(data1, merged_file, indent=2)

执行后得到的merged.json会是你期望的结构:每个顶级键(ONE、TWO)下包含A、B、C、D四个属性。如果两个文件中有重复属性,update()方法会用file2的值覆盖file1的,若需要保留file1的原值,可以添加键存在性判断后再赋值。

用jq命令行工具快速合并

如果习惯用命令行,jq工具可以一行完成合并:

jq -s '.[0] * .[1] | with_entries(.value = .[0].value * .[1].value)' file1.json file2.json > merged.json

这个命令的逻辑是:先将两个文件读入数组,完成顶级对象合并后,再对每个顶级键对应的嵌套对象进行属性合并。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 15:39:20