BizTalk平面文件架构:如何使用双引号作为分隔符
解决CSV字段拆分时出现多余逗号节点的问题
你的核心问题是直接用双引号作为分隔符拆分CSV行时,会把字段间的",拆分出单独的逗号元素。这是因为原字符串的字段分隔符实际是",",而非单纯的双引号。下面是几种可靠的解决方法:
方法1:使用标准CSV解析库(推荐)
几乎所有编程语言都自带处理CSV格式的标准库,它们会自动处理包含逗号的字段,完全规避这类问题。以Python为例:
import csv from io import StringIO csv_line = '"barn","40","10,120","bill"' reader = csv.reader(StringIO(csv_line)) fields = next(reader) print(fields) # 输出: ['barn', '40', '10,120', 'bill']
方法2:手动按","拆分
如果不想用库,可以先去掉字符串首尾的双引号,再按","拆分:
csv_line = '"barn","40","10,120","bill"' # 去掉首尾双引号,再拆分 fields = csv_line.strip('"').split('","') print(fields) # 输出: ['barn', '40', '10,120', 'bill']
这种方法适合格式规范的CSV行,要是存在转义双引号(比如"he said ""hello""")就会失效,此时还是用标准库更稳妥。
方法3:正则表达式匹配
用正则匹配所有被双引号包裹的内容,自动忽略字段内部的逗号:
import re csv_line = '"barn","40","10,120","bill"' fields = re.findall(r'"([^"]*)"', csv_line) print(fields) # 输出: ['barn', '40', '10,120', 'bill']
这个方法能处理大部分常规情况,但遇到转义双引号时同样需要调整正则规则。
内容的提问来源于stack exchange,提问作者John_Martin
相关产品推荐
相关产品推荐

