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

如何使用flatten_json模块仅扁平化JSON的data数组并导出CSV?

解决方法:提取data数组并扁平化导出CSV

嗨,没问题!既然你只需要处理JSON里的data数组部分,步骤其实很简单,我一步步给你讲清楚,新手也能轻松上手:

1. 先安装flatten_json模块

如果你还没装这个模块,先打开终端/命令行执行:

pip install flatten_json

2. 完整代码示例(带注释)

下面是针对你的需求写的完整代码,每一步都有注释,你可以直接套用:

import json
import flatten_json
import csv

# 你的原始JSON数据(如果是从文件读取,换成下面的注释代码即可)
raw_json = {
    "responseStatus": "SUCCESS",
    "responseDetails": { "total": 5754 },
    "data": [ { "id": 1324651 }, { "id": 5686131 }, { "id": 2165735 }, { "id": 2133256 } ]
}

# 如果你是从JSON文件读取数据,替换成这段代码:
# with open("你的输入文件.json", "r", encoding="utf-8") as f:
#     raw_json = json.load(f)

# 提取你需要的data数组(这一步你已经想到啦,很棒!)
data_json = raw_json["data"]

# 扁平化数组中的每个元素
# 注意:flatten_json.flatten()默认处理单个JSON对象,所以我们用列表推导式遍历数组里的每个元素
flat_data = [flatten_json.flatten(item) for item in data_json]

# 将扁平化后的数据导出为CSV
if flat_data:
    # 从第一个扁平化的对象中获取表头(比如这里就是["id"])
    csv_headers = flat_data[0].keys()
    
    # 写入CSV文件
    with open("output.csv", "w", newline="", encoding="utf-8") as csv_file:
        # 使用DictWriter可以直接把字典写入CSV,非常方便
        writer = csv.DictWriter(csv_file, fieldnames=csv_headers)
        writer.writeheader()  # 写入表头
        writer.writerows(flat_data)  # 写入所有数据行
    
    print("CSV文件已成功导出!")
else:
    print("警告:data数组为空,无法生成CSV文件")

3. 额外说明

  • 虽然你的data元素现在只有id字段,扁平化后看起来和原结构一样,但这个方法扩展性很强——如果以后data里的对象有嵌套结构(比如{"id":123, "info":{"name":"张三", "age":25}}),flatten_json会自动把嵌套字段转换成info_name、info_age这种扁平格式,完全不用改代码。
  • 导出的CSV文件会和你的脚本在同一个文件夹里,文件名是output.csv,你可以自己改成想要的名字。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:14:39