将两个JSON数据合并为包含date, value1, value2的格式
import json
import pandas as pd
# 第一个JSON
json_str1 = '{'message': 1000, 'detail': [{'date': 1684291140, 'value': 56.6}, {'date': 1684291200, 'value': 56.9}, {'date': 1684291260, 'value': 56.7}, {'date': 1684291320, 'value': 56.5}, {'date': 1684291380, 'value': 56.7}, {'date': 1684291440, 'value': 56.6}, {'date': 1684291500, 'value': 56.4}, {'date': 1684291560, 'value': 56.2}, {'date': 1684291620, 'value': 56.2}, {'date': 1684291680, 'value': 56.1}, {'date': 1684291740, 'value': 56.1}, {'date': 1684291800, 'value': 56.0}, {'date': 1684291860, 'value': 55.9}, {'date': 1684291920, 'value': 55.8}, {'date': 1684291980, 'value': 55.9}, {'date': 1684292040, 'value': 55.5}, {'date': 1684292100, 'value': 55.3}, {'date': 1684292160, 'value': 55.3}, {'date': 1684292220, 'value': 55.4}, {'date': 1684292280, 'value': 55.4}, {'date': 1684292340, 'value': 55.4}, {'date': 1684292400, 'value': 55.4}, {'date': 1684292460, 'value': 55.4}, {'date': 1684292520, 'value': 55.4}, {'date': 1684292580, 'value': 55.4}, {'date': 1684292640, 'value': 55.3}, {'date': 1684292700, 'value': 55.4}, {'date': 1684292760, 'value': 55.4}, {'date': 1684292820, 'value': 55.4}, {'date': 1684292880, 'value': 55.4}, {'date': 1684292940, 'value': 55.4}, {'date': 1684293000, 'value': 55.4}, {'date': 1684293060, 'value': 55.6}, {'date': 1684293120, 'value': 56.7}, {'date': 1684293180, 'value': 56.4}, {'date': 1684293240, 'value': 55.9}, {'date': 1684293300, 'value': 57.2}, {'date': 1684293360, 'value': 56.5}, {'date': 1684293420, 'value': 56.6}, {'date': 1684293480, 'value': 57.1}, {'date': 1684293540, 'value': 56.7}, {'date': 1684293600, 'value': 56.6}, {'date': 1684293660, 'value': 56.7}, {'date': 1684293720, 'value': 57.2}, {'date': 1684293780, 'value': 57.1}, {'date': 1684293840, 'value': 57.2}, {'date': 1684293900, 'value': 57.0}, {'date': 1684293960, 'value': 56.7}, {'date': 1684294020, 'value': 57.7}, {'date': 1684294080, 'value': 57.1}, {'date': 1684294140, 'value': 57.3}, {'date': 1684294200, 'value': 56.8}, {'date': 1684294260, 'value': 56.8}, {'date': 1684294320, 'value': 56.5}, {'date': 1684294380, 'value': 56.9}, {'date': 1684294440, 'value': 56.6}, {'date': 1684294500, 'value': 57.0}]}'
# 第二个JSON
json_str2 = '{'message': 1000, 'detail': [{'date': 1684291140, 'value': 28.2}, {'date': 1684291200, 'value': 28.4}, {'date': 1684291260, 'value': 28.4}, {'date': 1684291320, 'value': 28.5}, {'date': 1684291380, 'value': 28.6}, {'date': 1684291440, 'value': 28.7}, {'date': 1684291500, 'value': 28.7}, {'date': 1684291560, 'value': 28.8}, {'date': 1684291620, 'value': 28.8}, {'date': 1684291680, 'value': 28.9}, {'date': 1684291740, 'value': 29.0}, {'date': 1684291800, 'value': 29.0}, {'date': 1684291860, 'value': 29.0}, {'date': 1684291920, 'value': 29.1}, {'date': 1684291980, 'value': 29.1}, {'date': 1684292040, 'value': 29.2}, {'date': 1684292100, 'value': 29.1}, {'date': 1684292160, 'value': 29.0}, {'date': 1684292220, 'value': 29.0}, {'date': 1684292280, 'value': 29.0}, {'date': 1684292340, 'value': 29.0}, {'date': 1684292400, 'value': 29.0}, {'date': 1684292460, 'value': 29.0}, {'date': 1684292520, 'value': 29.0}, {'date': 1684292580, 'value': 29.0}, {'date': 1684292640, 'value': 29.0}, {'date': 1684292700, 'value': 28.9}, {'date': 1684292760, 'value': 28.9}, {'date': 1684292820, 'value': 28.9}, {'date': 1684292880, 'value': 28.9}, {'date': 1684292940, 'value': 28.9}, {'date': 1684293000, 'value': 28.8}, {'date': 1684293060, 'value': 28.9}, {'date': 1684293120, 'value': 29.1}, {'date': 1684293180, 'value': 29.2}, {'date': 1684293240, 'value': 29.3}, {'date': 1684293300, 'value': 29.3}, {'date': 1684293360, 'value': 29.3}, {'date': 1684293420, 'value': 29.4}, {'date': 1684293480, 'value': 29.4}, {'date': 1684293540, 'value': 29.4}, {'date': 1684293600, 'value': 29.5}, {'date': 1684293660, 'value': 29.5}, {'date': 1684293720, 'value': 29.6}, {'date': 1684293780, 'value': 29.6}, {'date': 1684293840, 'value': 29.6}, {'date': 1684293900, 'value': 29.5}, {'date': 1684293960, 'value': 29.5}, {'date': 1684294020, 'value': 29.5}, {'date': 1684294080, 'value': 29.6}, {'date': 1684294140, 'value': 29.6}, {'date': 1684294200, 'value': 29.6}, {'date': 1684294260, 'value': 29.6}, {'date': 1684294320, 'value': 29.7}, {'date': 1684294380, 'value': 29.7}, {'date': 1684294440, 'value': 29.7}, {'date': 1684294500, 'value': 29.7}, {'date': 1684294560, 'value': 29.7}, {'date': 1684294620, 'value': 29.7}]}'
# 将JSON字符串转换为Python字典
json_dict1 = json.loads(json_str1)
json_dict2 = json.loads(json_str2)
# 创建一个空列表来存储合并后的数据
combined_data = []
# 遍历两个JSON的detail列表
for i in range(len(json_dict1['detail'])):
# 提取date和value
date = json_dict1['detail'][i]['date']
value1 = json_dict1['detail'][i]['value']
value2 = json_dict2['detail'][i]['value']
# 创建新的字典并加入到combined_data列表
combined_data.append({'date': date, 'value1': value1, 'value2': value2})
# 使用pandas将列表转换为DataFrame
combined_df = pd.DataFrame(combined_data)
# 保存为CSV文件
combined_df.to_csv('combined_data.csv', index=False)
代码解析:
- 首先将两个JSON字符串分别转换为Python中的字典类型。
- 创建一个空列表
combined_data用于存储合并后的数据。 - 遍历两个JSON字典中的
detail列表。 - 提取每个元素中的
date和value。 - 将
date,value1,value2组合成一个新的字典。 - 将新的字典添加到
combined_data列表中。 - 使用
pandas库将combined_data列表转换为DataFrame。 - 将
DataFrame保存为名为combined_data.csv的CSV文件。
使用示例:
运行上述代码后,将生成一个名为combined_data.csv的CSV文件,其中包含以下格式的数据:
date,value1,value2
1684291140,56.6,28.2
1684291200,56.9,28.4
...
原文地址: https://www.cveoy.top/t/topic/n8jc 著作权归作者所有。请勿转载和采集!