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

如何用Python合并相同NameId的JSON对象并合并exp字段

可以用Python实现这个需求

实现思路

通过字典按NameId分组,将相同NameId对应的exp字段合并,最后把分组后的字典转换为目标列表格式即可。

代码示例

import json

# 原始JSON数据
raw_json = '''
[{
    "NameId": "name1",
    "exp": {
        "exp1": "test1"
    }
}, {
    "NameId": "name1",
    "exp": {
        "exp2": "test2"
    }
}]
'''

# 解析JSON为Python对象
data_list = json.loads(raw_json)

# 初始化分组字典,用于合并数据
merged_groups = {}
for item in data_list:
    name_id = item["NameId"]
    # 若该NameId未被记录,初始化合并后的结构
    if name_id not in merged_groups:
        merged_groups[name_id] = {
            "NameId": name_id,
            "exp": {}
        }
    # 合并exp字段,重复的exp键会被后续值覆盖
    merged_groups[name_id]["exp"].update(item["exp"])

# 将字典值转换为最终的列表格式
result = list(merged_groups.values())

# 打印格式化后的结果
print(json.dumps(result, indent=2))

代码说明

  1. 用json.loads()将原始JSON字符串解析为Python列表,方便遍历处理;
  2. 借助字典merged_groups以NameId为键,统一存储相同ID的合并数据;
  3. 遍历原始列表时,若当前NameId是首次出现,就创建包含NameId和空exp字典的条目;
  4. 用字典的update()方法,把当前对象的exp键值对合并到对应条目的exp中;
  5. 最后将字典的所有值转为列表,就是去重并合并后的目标数据。

运行结果

[
  {
    "NameId": "name1",
    "exp": {
      "exp1": "test1",
      "exp2": "test2"
    }
  }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 15:45:43