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

如何用Python简化JSON结构以优化CSV转换?

处理JSON结构清理并转换为CSV的实现

你可以先将JSON读取为Python字典,手动清理数组字段的内容,再转换为DataFrame导出CSV,具体实现如下:

完整代码

import json
import pandas as pd

# 读取原始JSON文件
with open('test.json', encoding='utf-8') as inputfile:
    data = json.load(inputfile)

# 遍历处理每个字段
cleaned_data = {}
for key, value in data.items():
    # 判断当前字段是否为数组类型
    if isinstance(value, list):
        # 提取所有name字段,并用换行符拼接
        names = [item.get('name', '') for item in value]
        cleaned_data[key] = '\n'.join(names)
    else:
        # 非数组字段直接保留原内容
        cleaned_data[key] = value

# 转换为DataFrame并导出CSV
df = pd.DataFrame([cleaned_data])
df.to_csv('test.csv', encoding='utf-8', index=False)

关键逻辑说明

  • 先用json.load()将JSON文件读取为Python字典,方便逐字段处理
  • 遍历字典时,通过isinstance(value, list)判断字段是否是数组:
    • 若是数组,用列表推导式提取每个元素的name(如果元素没有name字段则留空),再用'\n'.join()拼接成带换行符的字符串
    • 非数组字段直接保留原始值(包括null)
  • 最后将清理后的字典转为DataFrame时,用[cleaned_data]包裹,确保生成正确的单行数据结构

如果你的JSON文件是包含多条数据的数组(比如[{...}, {...}]),可修改为以下版本:

import json
import pandas as pd

with open('test.json', encoding='utf-8') as inputfile:
    data_list = json.load(inputfile)

cleaned_list = []
for data in data_list:
    cleaned_data = {}
    for key, value in data.items():
        if isinstance(value, list):
            names = [item.get('name', '') for item in value]
            cleaned_data[key] = '\n'.join(names)
        else:
            cleaned_data[key] = value
    cleaned_list.append(cleaned_data)

df = pd.DataFrame(cleaned_list)
df.to_csv('test.csv', encoding='utf-8', index=False)

这样处理后就能得到你期望的结构,再导出为CSV文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 00:50:06