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

如何修改pandas脚本实现JSON转CSV后Excel正常识别行列格式

问题原因及修改方案

当前脚本导出的CSV在Excel中行列结构异常,核心是配置不符合Excel识别CSV的规则,按以下要点修改即可:

  • 修正分隔符:当前设置sep=":"用冒号做字段分隔,不符合CSV通用标准,Excel默认识别逗号作为列分隔符,直接把sep参数改为逗号,或者删除该参数(pandas默认用逗号做分隔符)。
  • 修正编码格式:pandas导出CSV默认用无BOM的UTF-8编码,Excel直接打开这类文件会出现中文乱码,同时可能触发列识别失败,需要把编码改为utf-8-sig,该编码会在文件头加入Excel可识别的BOM标记,同时不会影响其他工具读取文件。
  • 处理嵌套JSON:如果原JSON存在嵌套对象、数组结构,直接用pd.read_json读取会把嵌套内容转为Python对象字符串,导出后会出现格式混乱的非结构化内容,需要用pd.json_normalize把嵌套结构打平为标准一维表结构。
  • 补充路径校验:当前导出路径指向/home/admin/xml/目录,如果该目录不存在脚本会直接报错终止,导出前先判断目录是否存在,不存在则自动创建即可。
优化后完整代码
import pandas as pd
import os
import json

# 配置文件路径
json_file = r'/home/admin/myfile.json'
csv_file = r'/home/admin/csv/myfileSample.csv'

# 自动创建导出目录,避免路径不存在报错
os.makedirs(os.path.dirname(csv_file), exist_ok=True)

# 读取并扁平化JSON,兼容嵌套结构
with open(json_file, 'r', encoding='utf-8') as f:
    data = json.load(f)
df = pd.json_normalize(data)

# 导出适配Excel规范的CSV
df.to_csv(
    csv_file,
    index=False,
    encoding='utf-8-sig',
    sep=',',
    quoting=1  # 全字段加双引号包裹,避免字段内的逗号、换行符导致列错位
)
补充说明
  • 如果你的JSON是完全扁平的无嵌套结构,可以删掉json.load和json_normalize相关逻辑,直接用df = pd.read_json(json_file)读取即可,分隔符和编码的配置必须保留。
  • 导出后直接双击CSV文件即可在Excel中正常打开,行列结构和原JSON表结构完全对应,不会出现乱码、列错位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 21:18:21