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

如何使用Python将嵌套字典转换为DataFrame/CSV

Python实现嵌套字典转DataFrame/CSV

核心逻辑和你使用的在线JSON转CSV工具对齐,自动打平嵌套结构,无需手动逐字段提取。

  • 依赖准备:先安装pandas库,执行命令pip install pandas

完整实现代码

import pandas as pd

# 待转换的原始嵌套字典
data = {
  "message": {
    "id": 474735,
    "token": "GI797jMv8FuG",
    "direction": "outgoing",
    "message_id": "t",
    "to": "user@email.com",
    "from": "user@email.com",
    "subject": "Test Message at July 05, 2022 16:10",
    "timestamp": 1657017652.063772,
    "spam_status": "NotChecked",
    "tag": None
  },
  "status": "Sent",
  "details": "Message for  accepted by aspmx.l.google.com (142.251.12.26) (from 49.248.200.108)",
  "output": "250 2.0.0 OK  1657017654 f1-20020a63de01000000b0040d4ea0274fsi11524255pgg.697 - gsmtp\n",
  "sent_with_ssl": False,
  "timestamp": 1657017654.6172404,
  "time": 1.26
}

# 自动打平嵌套结构生成DataFrame
df = pd.json_normalize(data)

# 控制台预览转换结果
print(df)

# 导出为CSV文件,index=False去除默认行号列,utf-8-sig编码兼容Excel中文显示
df.to_csv("message_export.csv", index=False, encoding="utf-8-sig")

注意事项

  • pd.json_normalize会自动递归展开所有层级的嵌套字典,嵌套字段默认以.拼接父键和子键作为列名,比如原message下的id字段对应列名为message.id,外层同名字段timestamp和嵌套的message.timestamp不会产生冲突,输出结构和在线转换工具完全一致。
  • 如果需要调整嵌套字段的列名分隔符,可以给json_normalize传入sep="_"参数,列名就会变成message_id这种下划线分隔的格式。
  • 如果是批量处理多条同结构的字典,只需要把多个字典放到列表里传给pd.json_normalize即可,会自动生成多行的DataFrame。
  • 导出CSV时使用utf-8-sig编码是为了避免Windows环境下用Excel打开文件出现乱码,如果不需要兼容Excel中文显示,可以替换为默认的utf-8编码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 13:24:21