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

使用Python将每行存JSON对象的CSV文件转换为JSON对象数组

CSV每行JSON转合法JSON数组解决方案

完整可运行代码

import json
import csv

json_result = []

# 读取CSV文件,自动处理CSV格式的双引号转义
with open("testData.csv", "r", encoding="utf-8") as csv_file:
    reader = csv.reader(csv_file)
    for row in reader:
        # 跳过空行
        if not row or not row[0].strip():
            continue
        # 将JSON字符串解析为Python字典,避免直接拼接字符串出现格式错误
        json_obj = json.loads(row[0].strip())
        json_result.append(json_obj)

# 序列化整个数组为格式化JSON,indent控制缩进大小,ensure_ascii兼容中文等非ASCII字符
formatted_json = json.dumps(json_result, indent=4, ensure_ascii=False)

# 输出到文件,生成的文件可直接导入NoSQL数据库
with open("output.json", "w", encoding="utf-8") as output_file:
    output_file.write(formatted_json)

# 控制台打印验证结果
print(formatted_json)

问题原因说明

  • 之前硬编码字符串加入数组后出现单引号,是Python打印列表对象时的默认输出规则,仅为展示用的标识,不是实际内容。不要直接拼接字符串生成JSON,统一用json模块做序列化可以完全避免格式问题。
  • 读取CSV出现重复双引号,是因为CSV格式规范要求字段内的双引号需要用两个连续双引号转义,直接按行读取不会自动处理该转义规则,用内置的csv模块读取可自动还原原始字符串内容。

使用说明

替换代码中testData.csv为你的实际文件路径,若CSV包含表头行,可在for row in reader:前添加next(reader)跳过表头。运行后生成的output.json就是符合要求的JSON数组文件,可直接导入MongoDB等NoSQL数据库使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 14:00:01