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

如何正确拆分含单元格内逗号的CSV行字符串?

解决CSV字符串带引号内容的拆分问题

直接用split(',')会把引号内部的逗号也当作分隔符,导致拆分结果不符合预期。正确的做法是使用Python标准库中的csv模块,它专门用于处理CSV格式的解析,能自动识别引号包裹的内容,不会拆分其中的逗号。

代码示例

import csv
import io

tp = 'A,B,C,"6G,1A",1,2\r\n'
# 将字符串转为类文件对象
csv_file = io.StringIO(tp)
# 创建CSV读取器
reader = csv.reader(csv_file)
# 获取单行数据
result = next(reader)
print(result)

运行后输出:

['A', 'B', 'C', '6G,1A', '1', '2']

如果需要保留字符串中的引号(对应你期望结果里的"6G,1A",实际是转义后的双引号),可以调整CSV读取器参数关闭引号解析:

import csv
import io

tp = 'A,B,C,"6G,1A",1,2\r\n'
csv_file = io.StringIO(tp)
# 设置不解析引号
reader = csv.reader(csv_file, quoting=csv.QUOTE_NONE)
result = next(reader)
# 去除末尾的换行符
result[-1] = result[-1].rstrip('\r\n')
print(result)

输出结果:

['A', 'B', 'C', '"6G,1A"', '1', '2']

为什么不推荐用正则?

虽然可以用正则表达式匹配"[^"]+"或[^,]+来拆分,但正则很难处理CSV中的边缘情况(比如引号内包含转义引号""、多行内容等),而csv模块是经过测试的标准工具,能覆盖绝大多数场景,更可靠。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 11:35:51