You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python Pandas保存JSON文件时如何正确格式化以保留原有结构

问题原因

将包含Key1字段的顶层字典直接传入pd.DataFrame()时,pandas会把Key1识别为DataFrame的列名,列表中的元素对应行数据,默认从0开始生成行索引。调用to_json()方法时,行索引会被序列化为字典的key,因此原本的列表结构会变为带数字索引的对象结构,外层方括号也变为花括号。

实现方法

不要直接将顶层字典转为DataFrame,仅提取Key1对应的列表做数据处理,处理完成后重新组装为原始的字典结构再导出即可,完整代码如下:

import pandas as pd
import json

# 读取原始JSON文件
with open("源文件路径.json", "r", encoding="utf-8") as f:
    raw_data = json.load(f)

# 仅提取Key1对应的列表生成DataFrame
df = pd.DataFrame(raw_data["Key1"])

# -------------------
# 此处添加你的数据处理逻辑
# -------------------

# 处理完成后将DataFrame转为无索引的字典列表,组装回原始结构
processed_data = {
    "Key1": df.to_dict(orient="records")
}

# 导出为JSON,indent参数可保持格式化缩进和原文件一致
with open("输出文件路径.json", "w", encoding="utf-8") as f:
    json.dump(processed_data, f, indent=2, ensure_ascii=False)
关键参数说明
  • orient="records":指定DataFrame导出格式为无行索引的字典列表,完全匹配原始Key1对应的数组结构
  • indent:设置JSON缩进空格数,输出格式化的内容,和原始文件视觉格式一致
  • ensure_ascii=False:避免中文被转为Unicode编码,保留原始字符

内容的提问来源于stack exchange,提问作者Nikky Leed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 08:06:04