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

求助:使用Python及pandas json_normalize转换深度嵌套JSON为CSV失败

解决嵌套JSON转CSV的问题(针对details.kpis.results)

分步处理方案

1. 加载JSON数据

先将JSON数据加载到Python环境中,假设数据已读取到变量data内:

import json
import pandas as pd

# 读取本地JSON文件(或直接使用已加载的JSON数据)
with open("your_data.json", "r") as f:
    data = json.load(f)

2. 拆解深层嵌套的kpis.results

针对details.kpis.results的多层嵌套结构,先单独提取该部分数据,再关联上层元信息:

# 提取嵌套的results列表
kpis_results = data["details"]["kpis"]["results"]

# 提取需要保留的上层元数据(根据你的JSON实际字段调整)
meta_data = {
    "top_id": data.get("id"),
    "top_name": data.get("name")
    # 按需添加其他上层字段
}

# 为每个results条目添加上层元数据
for item in kpis_results:
    item.update(meta_data)

# 转换为DataFrame
df = pd.DataFrame(kpis_results)

3. 处理子层级嵌套字段

如果results内仍有深层嵌套的字典或列表,可通过json_normalize展开:

# 展开results内的字典型嵌套字段,用下划线分隔层级
df = pd.json_normalize(kpis_results, sep="_")

# 若存在列表型嵌套字段(如sub_results),指定record_path展开并关联元数据
# df = pd.json_normalize(kpis_results, record_path="sub_results", meta=["top_id", "top_name"], sep="_")

4. 导出为CSV

最终将处理好的数据导出为CSV文件:

df.to_csv("output.csv", index=False, encoding="utf-8")

关键注意事项

  • 先确认details.kpis.results的结构:如果是字典类型,需先转为列表再处理。
  • 元数据字段需根据你的JSON实际结构调整,确保子条目与上层标识信息关联。
  • 多层嵌套列表需循环逐层展开,再合并数据,避免信息丢失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 22:50:27