我有一堆要解析的 CSV 文件 - 问题是一半有引号用作引号,而逗号在主字段内。它们并不是真正的 CSV,但它们确实有固定数量的可识别字段。dialect=csv."excel" 设置非常适用于字段内没有额外 " 和 , 字符的文件。
该数据是旧的/不受支持的。我正试图给它注入一些生命。
例如
"AAAAA
AAAA
AAAA
AAAA","AAAAAAAA
AAAAAA
AAAAA "AAAAAA" AAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAA, AAAAA
AAAAAAAAA AAAAA AAAAAAAAAA
AAAAA, "AAAAA", AAAAAAAAA
AAAAAAAA AAAAAAAA
AAAAAAA
"
这会使文件解析器跳闸,并引发错误_csv.Error: newline inside string
。我通过从第二个字段内部删除引号将问题缩小到这个问题,并且 csv.reader 模块可以解析文件。
有些字段是多行的 - 我不确定这是否重要。
我一直在寻找方言设置,虽然我可以找到“skipinialspace”,但这似乎并不能解决问题。
需要明确的是 - 这不是有效的 'CSV',它的数据对象松散地遵循 CSV 结构,但在现场测试中有 , 和 " 字符。
换行符是 \x0d\x0a
我已经在方言模块中的双引号和引用变量的不同排列中尝试了很多次,但我无法正确地得到这个解析。
我不能确信“或”组合仅存在于字段边界上。
这个问题只存在于文件中的几个字段中的一个(最后一个),并且有几千个文件。