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

Python:解决含JSON的逗号分隔文本转CSV时JSON拆分为多列的问题

解决带JSON字段的逗号分隔文本转CSV时JSON被拆分的问题

这个问题我太熟了——本质是你的JSON字段里包含逗号,普通的逗号分隔解析会把JSON内部的逗号当成列分隔符,直接把完整的JSON拆得七零八落。下面给你两种靠谱的Python解决方法,都是我日常处理这类文件常用的:

方法1:使用Python标准库csv模块(无需额外安装依赖)

Python自带的csv模块可以识别被引号包裹的完整字段,只要我们指定正确的引号字符,就能避免JSON被拆分。你的示例里JSON是用单引号'包裹的,所以我们把quotechar设为单引号即可:

import csv

# 替换成你的输入文件路径
input_path = "your_input_file.txt"
# 替换成你想要的输出CSV路径
output_path = "your_output_file.csv"

with open(input_path, 'r', encoding='utf-8') as infile, open(output_path, 'w', newline='', encoding='utf-8') as outfile:
    # 初始化读取器:指定逗号为分隔符,单引号为字段包裹符,跳过逗号后的空格
    reader = csv.reader(infile, delimiter=',', quotechar="'", skipinitialspace=True)
    writer = csv.writer(outfile)
    
    for row in reader:
        # 处理示例里的NULL值,替换为空字符串(你也可以换成None或者其他值)
        cleaned_row = [cell if cell != 'NULL' else '' for cell in row]
        writer.writerow(cleaned_row)

关键参数说明:

  • quotechar="'":告诉解析器,被单引号包裹的内容是一个完整字段,不管里面有多少逗号都不会拆分
  • skipinitialspace=True:自动跳过逗号后面的空格,避免字段开头出现多余空格
  • newline='':避免写入CSV时出现多余的空行

方法2:用Pandas快速处理(代码更简洁)

如果你已经安装了Pandas,这个方法会更省心,Pandas的read_csv默认就能处理带引号的字段,只需要简单配置参数:

import pandas as pd

# 读取文本文件:指定分隔符、引号字符,把NULL识别为缺失值
df = pd.read_csv(
    "your_input_file.txt",
    sep=',',
    quotechar="'",
    na_values='NULL',
    skipinitialspace=True
)

# 保存为CSV,index=False是不保存行索引
df.to_csv("your_output_file.csv", index=False)

这个方法的优势是:自动处理缺失值、数据框格式方便后续做其他处理,比如你之后想解析JSON字段成单独列也很方便(可以用df['json_column'].apply(pd.read_json))。

注意事项:

如果你的输入文件里存在未转义的引号(比如JSON内部有和包裹符一样的单引号),可能需要先做转义处理,但从你的示例数据来看,这种情况应该不存在,直接用上面的代码就能解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:35:20