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

不使用csv库时,如何将JSON字符串写入CSV避免逗号拆分列

解决方案

要解决JSON字符串在CSV中被逗号拆分列的问题,且不使用csv库、不手动替换逗号,可利用JSON序列化规则配合CSV的语法规范实现:

  • CSV规则:包含逗号/双引号的字段需用双引号包裹,字段内的双引号要替换为两个双引号
  • 借助json.dumps的两次序列化+简单转义替换,自动处理所有需要转义的内容

修改后的代码

import json

d: dict = {"foo":"bar", "py": "pi"}
json_str = json.dumps(d)
# 先将JSON字符串转为JSON格式的字符串(自动包裹双引号并转义内部双引号),再适配CSV的转义规则
csv_safe_json = json.dumps(json_str).replace('\\"', '""')

with open("file_test.csv", mode='w') as f:
    f.write('col_a,col_b\n')
    # 拼接为col_a填值、col_b为空的CSV行
    f.write(f"{csv_safe_json},\n")

最终CSV输出

col_a,col_b
"{""foo"": ""bar"", ""py"": ""pi""}",

说明

  1. 第一次json.dumps(d):将字典转为标准JSON字符串
  2. 第二次json.dumps(json_str):把JSON字符串序列化为带双引号包裹、内部双引号转义的格式(如"{\\"foo\\": \\"bar\\"}")
  3. .replace('\\"', '""'):将JSON的转义双引号替换为CSV要求的双引号转义格式,确保字段内的双引号不会破坏CSV结构
  4. 最终拼接的行保证col_a是完整的JSON字段,col_b为空,完全符合需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 00:22:37