def csv_split() :
raw = [
'"1,2,3" , "4,5,6" , "456,789"',
'"text":"a,b,c,d", "gate":"456,789"'
]
cr = csv.reader( raw, skipinitialspace=True )
for l in cr :
print len( l ), l
此函数输出以下内容:
3 ['1,2,3 ', '4,5,6 ', '456,789']
6 ['text:"a', 'b', 'c', 'd"', 'gate:"456', '789"']
如您所知,第一行被正确地分成 3 个条目。但第二行不是。我希望 csv 阅读器将其分成两部分,而不是我们这里有 6 个。我也考虑过正则表达式方法,但它假设了一些特定的引用方言。
基本上我想要的是:只要有一个没有在一对“”中引用的“,”就拆分字符串。
有什么快速通用的方法可以做到这一点吗?我见过一些正则表达式黑客,它们假设每个文件都被引用等。我想我可以写一个小循环,这样做效率很低,但肯定会感谢一些更专业的建议。非常感谢!