以下是一个示例代码,可以按日期合并JSON数组:
import json
from collections import defaultdict
def merge_json_by_date(json_list):
merged_dict = defaultdict(list)
for json_data in json_list:
data = json.loads(json_data)
date = data.get('date')
merged_dict[date].append(data)
merged_json = []
for date, data_list in merged_dict.items():
merged_data = {'date': date, 'data': data_list}
merged_json.append(json.dumps(merged_data))
return merged_json
# 示例用法
json_list = [
'{"date": "2021-01-01", "value": 1}',
'{"date": "2021-01-02", "value": 2}',
'{"date": "2021-01-01", "value": 3}',
'{"date": "2021-01-03", "value": 4}'
]
merged_json = merge_json_by_date(json_list)
for json_data in merged_json:
print(json_data)
上述代码中,假设输入的JSON数组为json_list,其中每个元素都是一个字符串表示的JSON对象。代码首先使用json.loads将每个字符串解析为字典对象。然后,它遍历每个字典对象,提取日期(假设日期存储在键名为date的字段中),并将数据按日期分组存储到merged_dict字典中。最后,代码将每个日期下的数据整合为一个新的JSON对象,将其转换为字符串并添加到merged_json列表中。
注意,代码中使用了defaultdict来创建一个默认值为列表的字典。这样可以省去判断日期是否已存在于字典中的步骤,直接通过日期作为键来添加数据。
示例中的输出将按日期合并后的JSON对象字符串逐行打印。你可以根据实际需求修改输出方式。
下一篇:按日期合并两个列表