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

如何用json_normalize()导出含双层索引的JSON数据至CSV

保留双层索引的JSON转CSV实现方案

要同时保留index_line和index_tokens两层索引,需利用pd.json_normalize()的record_path与meta参数配合:

  • record_path指定需要展开的最内层嵌套列表(此处为tokens)
  • meta指定需要保留的上层关联字段(此处为index_line)

完整实现代码

import pandas as pd

data = [{
  "line": [
    {
      "index_line": 0,
      "tokens": [
        {
          "index_tokens": 1,
          "person": "A",
          "age": "23",
          "sex": "M",
          "add": ""
        },
        {
          "index_tokens": 2,
          "person": "B",
          "age": "22",
          "sex": "F",
          "add": ""
        }
        ]
    },
    {
      "index_line": 2,
      "tokens": [
        {
          "index_tokens": 1,
          "person": "C",
          "age": "23",
          "sex": "F",
          "add": ""
        },
        {
          "index_tokens": 2,
          "person": "D",
          "age": "21",
          "sex": "F",
          "add": ""
        }
        ]
    }
  ]
}]

# 处理数据,同时保留两层索引
pd_data = pd.json_normalize(
    data,
    record_path=["line", "tokens"],  # 展开tokens列表
    meta=[["line", "index_line"]]    # 保留上层的index_line
)

# 重命名列名,优化可读性
pd_data.rename(columns={"line.index_line": "index_line"}, inplace=True)

# 查看处理结果
print(pd_data)

# 导出为CSV文件
pd_data.to_csv("output.csv", index=False)

处理后的数据结构

输出的DataFrame及CSV内容如下:

index_lineindex_tokenspersonagesexadd
01A23M
02B22F
21C23F
22D21F

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 18:36:42