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

如何解析嵌套JSON并保存为CSV?附JSON结构示例

解析嵌套JSON并转CSV的解决方案

这种带动态唯一键的嵌套JSON(看起来像是Firebase Realtime Database导出的格式对吧?)转CSV其实很直接,用Python标准库就能搞定,不用装额外依赖。我给你一步步拆解:

步骤1:先理清JSON结构

你的JSON里,persons是顶层对象,每个键(比如-L1oNCxcRtS1)是用户的唯一标识,对应的值是该用户的属性集合——而且不同用户的属性可能不全(有的有emailAddress,有的没有),所以我们得先收集所有可能出现的字段,再统一处理数据。

步骤2:Python实现代码

import json
import csv

# 1. 读取并解析JSON文件
with open('data.json', 'r', encoding='utf-8') as f:
    raw_data = json.load(f)

# 2. 提取用户数据,同时保留原始的唯一ID
user_records = []
for person_id, user_attrs in raw_data['persons'].items():
    # 把唯一ID加入属性字典,方便后续溯源
    user_attrs['person_id'] = person_id
    user_records.append(user_attrs)

# 3. 收集所有可能的字段名(确保CSV表头覆盖所有属性)
all_field_names = set()
for record in user_records:
    all_field_names.update(record.keys())
# 可以手动调整字段顺序,比如把person_id放最前面
sorted_fields = sorted(list(all_field_names))

# 4. 写入CSV文件
with open('persons_output.csv', 'w', newline='', encoding='utf-8') as csv_file:
    writer = csv.DictWriter(csv_file, fieldnames=sorted_fields)
    # 先写表头
    writer.writeheader()
    # 批量写入所有记录,缺失的字段会自动填充为空值
    writer.writerows(user_records)

代码说明

  • 特意把persons下的唯一键(比如-L1oNCxcRtS1)作为person_id字段加入数据,这样CSV里能直接关联到原始JSON的用户标识,方便后续核对。
  • 用集合set收集字段名,自动去重,不管用户有没有某个属性,CSV表头都会包含它,缺失属性的行对应位置会是空值,不会报错。
  • csv.DictWriter可以直接把字典映射成CSV行,省去了手动对齐字段的麻烦,效率很高。

小提醒

如果你的JSON文件特别大,一次性加载到内存可能吃不消,可以改成逐行解析的方式,但中小规模的文件用上面的代码完全没问题。另外,布尔值(比如isSocialDataShared)和日期格式会被原样保留,后续用Excel或其他工具处理也很方便。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:35:44