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

如何使用Pandas解析含内嵌带空格逗号的逗号分隔CSV文件

嘿,这个问题我之前在处理CSV数据的时候也踩过坑!你的脚本现在把所有逗号都当成了字段分隔符,但实际上有些逗号是内容的一部分(比如Lettuce, Tomato & Onion Sandwich里的, ),所以得想办法区分这两种逗号才行。下面给你两种实用的解决方案:

解决方案:正确拆分带内容逗号的CSV行

方法1:简单替换+拆分(适合规则明确的场景)

如果你的CSV满足两个条件:

  • 字段分隔符是纯逗号(无空格)
  • 内容里的逗号都是逗号加空格(, )

那可以用临时占位符的思路来处理:先把内容里的, 替换成一个不会在内容中出现的标记,拆分后再还原回去。示例Python代码如下:

with open('data.csv', 'r', encoding='utf-8') as f:
    for line in f:
        # 先替换内容里的", "为临时占位符(选一个不会出现的字符串)
        temp_line = line.strip().replace(', ', '###COMMA###')
        # 按纯逗号拆分字段
        raw_items = temp_line.split(',')
        # 还原内容里的逗号
        final_items = [item.replace('###COMMA###', ', ') for item in raw_items]
        print(final_items)

比如输入行:Lettuce, Tomato & Onion Sandwich,Grilled Cheese,Soup, Salad
处理后会得到:
['Lettuce, Tomato & Onion Sandwich', 'Grilled Cheese', 'Soup', 'Salad']

方法2:用内置CSV模块(更健壮,推荐)

如果你的CSV格式更规范(带逗号的字段用双引号包裹,这是标准CSV的要求),那直接用Python内置的csv模块就可以完美解决,它会自动识别引号包裹的字段,不管里面有多少逗号都不会错误拆分:

import csv

with open('data.csv', 'r', encoding='utf-8') as f:
    # 指定分隔符为逗号,引号字符为双引号
    reader = csv.reader(f, delimiter=',', quotechar='"')
    for row in reader:
        print(row)

比如标准格式的输入行:"Lettuce, Tomato & Onion Sandwich","Grilled Cheese","Soup, Salad"
这个代码会直接输出正确的字段列表:
['Lettuce, Tomato & Onion Sandwich', 'Grilled Cheese', 'Soup, Salad']

额外提醒

如果你的CSV里带逗号的字段没有用引号包裹,那严格来说这是不规范的CSV格式。这种情况下,你可能需要先预处理文件,给包含, 的字段加上引号,再用csv模块解析,或者根据你的数据特点调整方法1的逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:31:24