如何用Python将Pandas生成的两个JSON数组合并为嵌套JSON文件
解决方案
直接操作JSON字符串容易出现语法错误,正确做法是先把Pandas生成的JSON字符串转回Python数据结构,再构造嵌套字典后输出成最终JSON。
步骤示例
假设你已经有两个过滤后的DataFrame:
df_status:包含time、x、y、z字段df_dt:包含dt、count字段
执行以下代码:
import pandas as pd import json # 1. 从DataFrame生成数组格式的JSON字符串(指定orient='records') status_records = df_status[['time', 'x', 'y', 'z']].to_json(orient='records') dt_records = df_dt[['dt', 'count']].to_json(orient='records') # 2. 将JSON字符串转为Python列表 status_list = json.loads(status_records) dt_list = json.loads(dt_records) # 3. 构造嵌套结构的字典 final_result = { "StatusTimes": status_list, "DtCount": dt_list } # 4. 生成最终JSON(可选:直接转字符串或写入文件) # 生成JSON字符串 final_json = json.dumps(final_result, indent=4, ensure_ascii=False) # 写入文件 with open('merged_output.json', 'w', encoding='utf-8') as f: json.dump(final_result, f, indent=4, ensure_ascii=False)
常见错误原因及规避
to_json参数错误:如果未指定orient='records',默认生成的是键为列名的对象而非数组,会导致嵌套结构不符合预期。- 直接拼接JSON字符串:手动拼接两个数组字符串到大括号中,极易出现逗号、括号不匹配的语法错误,必须通过Python数据结构合并后再转JSON。
- 编码乱码:若包含非ASCII字符,添加
ensure_ascii=False并指定编码为utf-8可避免乱码问题。
内容的提问来源于stack exchange,提问作者Halod
相关产品推荐
相关产品推荐

