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

如何使用Python合并JSON中重复日期的键值对?

合并JSON中相同日期的重复条目解决方案

实现思路

通过按日期分组的方式,将同一日期下的所有非日期键值对整合到同一个字典中,最终转换为目标格式的列表。

Python 代码实现

import json

# 原始JSON数据(可替换为从文件读取的内容)
raw_data = '''
[
    {
        "date":"2018-12-01",
        "9":{
            "mean":{
                "x_axis":-0.71,
                "y_axis":8.75,
                "z_axis":5.23
            }
        }
    },
    {
        "date":"2018-12-02",
        "4":{
            "mean":{
                "x_axis":-0.76,
                "y_axis":7.83,
                "z_axis":2.63
            }
        }
    },
    {
        "date":"2018-12-02",
        "5":{
            "mean":{
                "x_axis":0.59,
                "y_axis":6.46,
                "z_axis":7.12
            }
        }
    },
    {
        "date":"2018-12-02",
        "10":{
            "mean":{
                "x_axis":1.07,
                "y_axis":9.46,
                "z_axis":0.08
            }
        }
    }
]
'''

# 解析JSON为Python对象
parsed_data = json.loads(raw_data)

# 按日期分组存储整合后的数据
grouped_dict = {}

for entry in parsed_data:
    current_date = entry["date"]
    # 提取当前条目中除date外的所有键值对
    extra_fields = {key: value for key, value in entry.items() if key != "date"}
    
    if current_date not in grouped_dict:
        # 首次出现该日期,初始化条目
        grouped_dict[current_date] = {"date": current_date}
    
    # 合并额外字段到对应日期的条目
    grouped_dict[current_date].update(extra_fields)

# 将分组后的字典转换为目标列表格式
final_result = list(grouped_dict.values())

# 输出格式化后的JSON
print(json.dumps(final_result, indent=4))

代码说明

  1. JSON解析:使用json.loads()将JSON字符串转换为Python可操作的列表对象。
  2. 分组逻辑:利用字典grouped_dict的键唯一性,以日期为键存储每个日期的整合数据。
  3. 字段合并:遍历每个原始条目,过滤掉date字段后,用update()方法将其余键值对合并到对应日期的条目中。
  4. 结果转换:将字典的值转换为列表,得到目标格式的JSON结构。

注意事项

  • 如果同一日期下出现重复的数字键(比如两个"9"字段),后面的条目会覆盖前面的。如果需要保留所有重复键的内容,可以修改逻辑为将对应值存储为列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 15:35:36