我有一个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','你好。她说得很好',“那就好”']
表明它无法解析嵌套的引号,其他行中的文本均未引用。
如何正确解析此文件?
答案 0 :(得分:1)
您将不得不修复文件-并且在没有更多信息的情况下,我不确定任何人都可以告诉您最佳的处理方法。这是问题所在。如果您完全按原样阅读示例csv,则最终结果是:
"user","date","msg"\n"User1","1234","Hello. She said "well, thats good"\nthen\nfade out"
没有什么好办法来区分哪些引号,哪些逗号,哪些新行(\n
)是“好”和哪些是“坏”。在格式正确的csv中,\n
字符表示它是新行(即新条目),因此,如果csv的一个条目分为多行,则需要首先固定该csv。