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

如何在Python程序中合并结构相同的JSON对象?

合并JSON对象的data数组方案

嘿,这个需求其实挺常见的,咱们一步步来轻松搞定它~

首先得纠正你代码里的一个小问题:json.loads()函数的参数得是JSON格式的字符串,而不是直接传Python字典。如果是直接在代码里定义这两个JSON结构,直接用Python字典赋值就行;如果是从文件/接口拿到的JSON字符串,才需要用json.loads()解析成字典。

完整实现步骤

假设我们有两个结构一致的JSON对应的Python字典:

  • 第一个是thejson1(你的原始数据)
  • 第二个是thejson2(需要合并的目标数据)

我们要做的就是把thejson2["data"]里的所有元素追加到thejson1["data"]里,甚至可以顺便更新responseDetails里的total数值(毕竟合并后总数应该是原来的总数加上新数据的条数)。

看下面的完整代码:

import json

# 方式1:直接定义Python字典(如果是硬编码的话)
thejson1 = {
    "responseStatus": "SUCCESS",
    "responseDetails": {"total": 5754},
    "data": [{"id": 1324651}, {"id": 5686131}]
}

thejson2 = {
    "responseStatus": "SUCCESS",
    "responseDetails": {"total": 2},
    "data": [{"id": 987654}, {"id": 123456}]
}

# 核心:合并data数组
thejson1["data"].extend(thejson2["data"])

# 可选:更新total数值(如果需要的话)
thejson1["responseDetails"]["total"] += len(thejson2["data"])

# 如果需要把合并后的字典转回JSON字符串
merged_json_str = json.dumps(thejson1, indent=4)
print(merged_json_str)

代码解释

  • list.extend()方法:这是Python列表的内置方法,能把另一个列表的所有元素一次性追加到当前列表末尾,正好符合我们合并数组的需求。
  • 更新total:如果你的业务需要这个数值保持准确,就加上这一步,用原来的总数加上新数据的长度就行。
  • json.dumps():如果最后需要输出JSON格式的字符串,用这个方法,indent=4是为了让输出的字符串更美观易读。

补充:如果是从JSON字符串解析的情况

如果你的两个JSON是从文件或者接口获取的字符串,那先解析成字典再操作:

json_str1 = '''{"responseStatus": "SUCCESS", "responseDetails": {"total": 5754}, "data": [{"id": 1324651}, {"id": 5686131}]}'''
json_str2 = '''{"responseStatus": "SUCCESS", "responseDetails": {"total": 2}, "data": [{"id": 987654}, {"id": 123456}]}'''

thejson1 = json.loads(json_str1)
thejson2 = json.loads(json_str2)

# 之后的合并操作和上面一样
thejson1["data"].extend(thejson2["data"])

这样操作下来,你就能得到合并后的JSON对象啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:26:41