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

如何使用Python或jq将统一字段的多个JSON文件合并为单个CSV文件

解决方案

报错原因修复

你遇到的语法错误是系统将Python脚本识别为Shell脚本执行导致,两种修复方式:

  • 执行命令改为 python3 json.merge.python.1.py 调用Python解释器运行
  • 在脚本第一行添加 #!/usr/bin/env python3 声明,再赋予执行权限后运行

批量JSON转CSV低内存方案

该方案逐文件处理,无需一次性加载所有JSON数据到内存,支持处理opinions_cited数组类型字段,单JSON对应CSV单行,新增自增计数id替换原有源id字段,适配你给出的所有字段需求。

完整代码

#!/usr/bin/env python3
import glob
import csv
import json

# 定义CSV列名,新增count_id作为首列,替换原有id
CSV_COLUMNS = [
    "count_id",
    "resource_url",
    "absolute_url",
    "cluster",
    "author",
    "joined_by",
    "author_str",
    "per_curiam",
    "date_created",
    "date_modified",
    "type",
    "sha1",
    "page_count",
    "download_url",
    "local_path",
    "plain_text",
    "html",
    "html_lawbox",
    "html_columbia",
    "html_with_citations",
    "extracted_by_ocr",
    "opinions_cited"
]

if __name__ == "__main__":
    # 获取所有json文件路径
    json_files = glob.glob("*.json")
    count_id = 1

    with open("wash_opinions.csv", "w", newline="", encoding="utf-8") as csv_f:
        writer = csv.DictWriter(csv_f, fieldnames=CSV_COLUMNS, quoting=csv.QUOTE_ALL)
        writer.writeheader()

        for json_path in json_files:
            # 逐文件读取解析
            with open(json_path, "r", encoding="utf-8") as jf:
                try:
                    data = json.load(jf)
                except json.JSONDecodeError:
                    # 跳过损坏的JSON文件
                    print(f"跳过损坏文件:{json_path}")
                    continue

            row = {"count_id": count_id}
            # 填充普通字段
            for col in CSV_COLUMNS[1:-1]:
                row[col] = data.get(col, "")
            # 处理opinions_cited数组,用分号拼接成字符串
            opinions_cited = data.get("opinions_cited", [])
            row["opinions_cited"] = ";".join([str(item) for item in opinions_cited]) if opinions_cited else ""

            writer.writerow(row)
            count_id += 1

    print(f"处理完成,共导出{count_id-1}条记录到wash_opinions.csv")

使用说明

  1. 将上述代码保存为json_to_csv.py,和所有JSON文件放在同一目录下
  2. 执行命令 python3 json_to_csv.py 运行即可
  3. 若需要修改opinions_cited的分隔符,替换代码中";".join的分号为其他符号即可
  4. 脚本会自动跳过损坏的JSON文件,运行过程中会打印损坏文件路径

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:15:03