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

将多个嵌套换行分隔JSON文件合并为带来源列的CSV

解决嵌套JSON合并为带来源列的CSV方案

核心思路

针对你提供的JSON结构,我们需要先展开顶层的id键值对,再扁平化嵌套的数组字段,最后给每条数据打上来源文件名的标记,再合并所有文件数据导出为CSV。

完整代码实现

import pandas as pd
import json
import os

# 定义要处理的JSON文件所在文件夹路径(根据你的实际路径修改)
json_folder = "./your_json_files"
# 存储所有处理后的数据
all_data = []

# 遍历文件夹下的所有JSON文件
for filename in os.listdir(json_folder):
    if filename.endswith(".json"):
        file_path = os.path.join(json_folder, filename)
        # 读取JSON文件
        with open(file_path, "r", encoding="utf-8") as f:
            json_data = json.load(f)
        
        # 遍历顶层的idA、idB等键
        for item_id, item_data in json_data.items():
            # 扁平化嵌套的property3数组,同时保留其他字段和当前的id
            # record_path指定要展开的数组字段,meta指定要保留的其他字段
            df = pd.json_normalize(
                item_data,
                record_path=["property 3"],  # 要展开的嵌套数组字段
                meta=[
                    "property 1", 
                    "property 2",
                    ("item_id",)  # 把顶层的idA/idB作为一列
                ]
            )
            # 添加来源文件名列
            df["数据来源"] = filename
            # 将当前文件处理后的数据加入总列表
            all_data.append(df)

# 合并所有数据
final_df = pd.concat(all_data, ignore_index=True)
# 导出为CSV
final_df.to_csv("./合并结果.csv", index=False, encoding="utf-8-sig")

关键步骤说明

  • 遍历文件:用os.listdir批量读取目标文件夹下的所有JSON文件,自动过滤非JSON文件。
  • 处理顶层id:你的JSON顶层是键值对(idA对应一个对象),所以需要循环取出每个id对应的对象数据。
  • 扁平化嵌套数组:使用pd.json_normalize的record_path参数指定要展开的property 3数组,meta参数保留其他非数组字段,同时把顶层的id也加入到数据中。
  • 添加来源列:直接给当前处理的DataFrame新增一列,值为当前文件名,确保每条数据都能追溯来源。
  • 合并与导出:用pd.concat合并所有文件的DataFrame,最后导出为CSV(utf-8-sig保证中文在Excel中正常显示)。

常见问题排查

  1. JSON格式错误:如果运行时提示JSON解析错误,检查你的JSON文件是否有语法错误(比如逗号遗漏、引号不匹配),可以用在线JSON校验工具验证。
  2. 字段名不匹配:如果多个JSON文件的schema不一致(比如有的没有property 3),可以在代码中添加判断逻辑跳过异常数据,或者统一处理字段缺失的情况。
  3. 路径问题:确保json_folder的路径是正确的,Windows路径注意用双反斜杠\\或者原始字符串r".\your_path"。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 04:05:53