Python JSON 数据合并和重命名键值
Python 合并 JSON 数据并重命名键值
本示例演示如何使用 Python 代码将两个 JSON 字符串合并,并对其中一个 JSON 的键值进行重命名,最终输出一个合并后的 JSON 字符串。
原始 JSON 数据:
第一个 JSON 为:
{'message': 1000, 'detail': [{'date': 1684292580, 'value': 29.0}, {'date': 1684292640, 'value': 29.0}, {'date': 1684292700, 'value': 28.9}]}
第二个 JSON 为:
{'message': 1000, 'detail': [{'date': 1684291140, 'value': 56.6}, {'date': 1684291200, 'value': 56.9}, {'date': 1684291260, 'value': 56.7}]}
目标:
- 将第一个 JSON 的 'value' 键重命名为 'temp'。
- 将第二个 JSON 的 'value' 键重命名为 'humi'。
- 将第二个 JSON 的 'detail' 列表合并到第一个 JSON 的 'detail' 列表中。
Python 代码:
import json
json1 = '{"message": 1000, "detail": [{"date": 1684292580, "value": 29.0}, {"date": 1684292640, "value": 29.0}, {"date": 1684292700, "value": 28.9}]}'
json2 = '{"message": 1000, "detail": [{"date": 1684291140, "value": 56.6}, {"date": 1684291200, "value": 56.9}, {"date": 1684291260, "value": 56.7}]}'
data1 = json.loads(json1)
data2 = json.loads(json2)
for detail in data1['detail']:
detail['temp'] = detail.pop('value')
for detail in data2['detail']:
detail['humi'] = detail.pop('value')
data1['detail'] += data2['detail']
print(json.dumps(data1))
输出:
{"message": 1000, "detail": [{"date": 1684292580, "temp": 29.0}, {"date": 1684292640, "temp": 29.0}, {"date": 1684292700, "temp": 28.9}, {"date": 1684291140, "humi": 56.6}, {"date": 1684291200, "humi": 56.9}, {"date": 1684291260, "humi": 56.7}]}
代码解释:
- 使用
json.loads()将 JSON 字符串转换为 Python 字典。 - 使用循环遍历第一个 JSON 的 'detail' 列表,将 'value' 键重命名为 'temp'。
- 使用循环遍历第二个 JSON 的 'detail' 列表,将 'value' 键重命名为 'humi'。
- 使用
+=将第二个 JSON 的 'detail' 列表合并到第一个 JSON 的 'detail' 列表中。 - 使用
json.dumps()将最终的 Python 字典转换为 JSON 字符串并输出。
原文地址: https://www.cveoy.top/t/topic/n8kK 著作权归作者所有。请勿转载和采集!