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}]}

目标:

  1. 将第一个 JSON 的 'value' 键重命名为 'temp'。
  2. 将第二个 JSON 的 'value' 键重命名为 'humi'。
  3. 将第二个 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}]}

代码解释:

  1. 使用 json.loads() 将 JSON 字符串转换为 Python 字典。
  2. 使用循环遍历第一个 JSON 的 'detail' 列表,将 'value' 键重命名为 'temp'。
  3. 使用循环遍历第二个 JSON 的 'detail' 列表,将 'value' 键重命名为 'humi'。
  4. 使用 += 将第二个 JSON 的 'detail' 列表合并到第一个 JSON 的 'detail' 列表中。
  5. 使用 json.dumps() 将最终的 Python 字典转换为 JSON 字符串并输出。
Python JSON 数据合并和重命名键值

原文地址: https://www.cveoy.top/t/topic/n8kK 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录