嵌套报价CSV

时间:2019-02-14 16:57:31

标签: python python-3.x csv

我有一个CSV文件,其中有些条目的结构很奇怪,使用嵌套的引号和换行符,如下所示:

"user","date","msg"
"User1","1234","Hello. She said "well, thats good"
then
fade out"

我已经测试了许多csv阅读器设置(python3本机csv阅读器),但是我无法正确读取此文件。输出应为:

  

['User1','1234','你好。她说:“好,那很好”,然后淡出']

但使用例如csv.reader(csv_file, delimiter=',', quotechar='"', doublequote=True, quoting=csv.QUOTE_ALL) 它输出:

  

['User1','1234','你好。她说得很好',“那就好”']

表明它无法解析嵌套的引号,其他行中的文本均未引用。

如何正确解析此文件?

1 个答案:

答案 0 :(得分:1)

您将不得不修复文件-并且在没有更多信息的情况下,我不确定任何人都可以告诉您最佳的处理方法。这是问题所在。如果您完全按原样阅读示例csv,则最终结果是:

"user","date","msg"\n"User1","1234","Hello. She said "well, thats good"\nthen\nfade out"

没有什么好办法来区分哪些引号,哪些逗号,哪些新行(\n)是“好”和哪些是“坏”。在格式正确的csv中,\n字符表示它是新行(即新条目),因此,如果csv的一个条目分为多行,则需要首先固定该csv。