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

如何用pandas.json_normalize处理嵌套JSON生成指定CSV?

使用 Pandas 规范化嵌套 JSON 并转换为 CSV

方法一:利用 pd.json_normalize 自动展开嵌套结构

pd.json_normalize 可以自动处理嵌套JSON结构,生成扁平化的DataFrame,之后只需筛选并重命名目标字段即可:

import pandas as pd
import json

# 1. 读取JSON数据(根据文件格式选择对应方式)
# 情况1:JSON文件是包含所有记录的数组
with open('your_data.json', 'r') as f:
    data = json.load(f)

# 情况2:JSON文件每行一条记录(JSON Lines格式)
# with open('your_data.json', 'r') as f:
#     data = [json.loads(line) for line in f]

# 2. 规范化JSON,生成扁平化DataFrame
df_normalized = pd.json_normalize(data)

# 3. 筛选目标字段并重命名
target_mapping = {
    'documentReport.documentId': 'documentId',
    'documentReport.flowName': 'flowName',
    'documentReport.flowStateName': 'flowStateName',
    'documentReport.userName': 'userName',
    'documentReport.uploadDateUtc': 'uploadDateUtc',
    'documentReport.claro.numberSds': 'numberSds'
}

result_df = df_normalized[target_mapping.keys()].rename(columns=target_mapping)

# 4. 导出为CSV
result_df.to_csv('output.csv', index=False)

方法二:手动提取字段(直观高效,适合字段明确的场景)

如果JSON层级复杂但需要的字段固定,手动遍历提取目标值可以避免处理规范化后的长列名,逻辑更清晰:

import pandas as pd
import json

# 1. 读取JSON数据(同方法一)
with open('your_data.json', 'r') as f:
    data = json.load(f)

# 2. 遍历每条记录,提取所需字段
extracted_records = []
for record in data:
    doc_report = record['documentReport']
    claro_info = doc_report['claro']
    extracted_records.append({
        'documentId': doc_report['documentId'],
        'flowName': doc_report['flowName'],
        'flowStateName': doc_report['flowStateName'],
        'userName': doc_report['userName'],
        'uploadDateUtc': doc_report['uploadDateUtc'],
        'numberSds': claro_info['numberSds']
    })

# 3. 转换为DataFrame并导出CSV
result_df = pd.DataFrame(extracted_records)
result_df.to_csv('output.csv', index=False)

注意事项

  • 确保输入的data是列表类型(包含所有JSON记录),如果原始JSON是单个对象,需将其放入列表中(如data = [single_record])。
  • 若JSON存在缺失字段,可使用get方法避免报错,例如claro_info.get('numberSds', None)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 00:54:29