我希望能够分割一个包含多次引用定界符的字符串。csv模块中有没有处理这种类型字符串的参数?或者还有其他方法可以处理它吗?
text = '"a,b"-"c,d","a,b"-"c,d"'
next(csv.reader(StringIO(text), delimiter=",", quotechar='"', quoting=csv.QUOTE_NONE))
期望输出结果:['"a,b"-"c,d"', '"a,b"-"c,d"']
实际输出结果:['"a', 'b"-"c', 'd"', '"a', 'b"-"c', 'd"']
编辑: 上面的示例是简化的,但显然过于简化,因此一些评论提供了解决方案,但没有针对完整版本。下面是我想要处理的实际数据。
import csv
text = '"3-Amino-1,2,4-triazole"-text-0-"3-Amino-1,2,4-triazole"-CD-0,"3-Amino-1,2,4-triazole"-text-0-"3-Amino-1,2,4-triazole"-LS-0'
next(csv.reader(StringIO(text), delimiter=",", quotechar='"', quoting=csv.QUOTE_NONE))
期望输出
[
'"3-Amino-1,2,4-triazole"-text-0-"3-Amino-1,2,4-triazole"-CD-0',
'"3-Amino-1,2,4-triazole"-text-0-"3-Amino-1,2,4-triazole"-LS-0'
]
实际输出
[
'"3-Amino-1',
'2',
'4-triazole"-text-0-"3-Amino-1',
'2',
'4-triazole"-CD-0','"3-Amino-1',
'2', '4-triazole"-text-0-"3-Amino-1',
'2',
'4-triazole"-LS-0'
]
print(next(csv.reader(StringIO(text.replace('","', '";"')), delimiter=';', quoting=csv.QUOTE_NONE)))
- Martin Evans