Python:如何分割逗号分隔字符串,忽略引号内的逗号
解决带引号字段的字符串分割问题
给定包含带引号字段(含逗号内容、空字符串)的字符串,需要按逗号分割但不拆分引号内的内容,可以直接利用Python内置的csv模块处理,这是最简洁可靠的方案:
代码实现
import csv from io import StringIO my_string = '2, "some text", "some more text with comma, foo bar", 42, "", 3, 4, "and some more text, hello"' # 替换HTML转义的双引号为实际双引号 processed_str = my_string.replace('"', '"') # 用csv.reader解析,自动处理引号内的逗号 reader = csv.reader(StringIO(processed_str), skipinitialspace=True) # 获取解析后的列表 result = next(reader) print(result)
代码说明
replace('"', '"'):原字符串中的"是HTML转义的双引号,先替换为标准双引号,确保csv模块能正确识别引号包裹的字段。csv.reader:默认以逗号为分隔符,会自动忽略双引号内部的逗号,同时将""解析为空字符串,完全匹配需求。skipinitialspace=True:自动去除每个字段开头的空格(比如原字符串中逗号后的空格),让结果和预期完全一致。
运行结果
输出:
['2', 'some text', 'some more text with comma, foo bar', '42', '', '3', '4', 'and some more text, hello']
内容的提问来源于stack exchange,提问作者Jordy
相关产品推荐
相关产品推荐

