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

Python3使用Pandas将JSON转CSV时设置JSON键为表头

Pandas 将产品JSON数据转换为键名作为表头的标准CSV方案
  • 只要你的JSON数据是「单条记录为字典、多条记录组成列表」的标准结构,不需要手动逐行拼接,直接用Pandas原生方法即可实现目标效果:JSON键自动映射为CSV表头,每行对应一条产品记录,生成规整二维表。
  • 可直接运行的参考代码:
import pandas as pd
# 如果是直接调用dummy API拉取数据,额外导入requests库即可
# import requests

# 替换为你自己的数据源:接口请求拿到的JSON解析结果/本地存储的JSON数据都可以
# 示例数据结构和你给出的样例完全匹配
product_list = [
    {"id": 1, "title": "iPhone 9", "description": "苹果全面屏机型发布前的最后一代非全面屏手机"},
    {"id": 2, "title": "iPhone X", "description": "苹果首款全面屏手机,搭载A11仿生芯片"}
]

# 接口取数示例:
# resp = requests.get("你的dummy API请求地址")
# product_list = resp.json()

# 自动将字典键转为DataFrame列名,也就是后续CSV的表头
df = pd.DataFrame(product_list)

# 导出CSV,index=False用于取消Pandas默认生成的行索引列,避免多出无意义的第一列
df.to_csv("产品列表.csv", index=False, encoding="utf-8-sig")
  • 导出的CSV效果完全符合预期:
id,title,description
1,iPhone 9,苹果全面屏机型发布前的最后一代非全面屏手机
2,iPhone X,苹果首款全面屏手机,搭载A11仿生芯片
  • 常见问题处理:
    • 如果dummy API返回的JSON有外层嵌套(比如返回结构是{"code": 200, "data": [产品记录列表]}),取数时要定位到记录列表的层级,比如product_list = resp.json()["data"]再传入生成DataFrame即可。
    • 加encoding="utf-8-sig"参数是为了避免Windows系统下用Excel打开CSV出现中文乱码,如果仅用代码读取文件,可替换为utf-8编码。
    • 如果需要修改表头显示名称,不需要改动原始JSON,生成DataFrame后重命名字段即可,示例:df = df.rename(columns={"id": "产品ID", "title": "产品名称", "description": "产品介绍"})。
    • 单条记录存在字段缺失(比如某条数据没有description字段)时,Pandas会自动在对应单元格填空值,不会破坏表格结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 12:51:18