Python 嵌套引号CSV

Python 嵌套引号CSV,python,python-3.x,csv,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文件,分隔符=',',

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

"user","date","msg"
"User1","1234","Hello. She said "well, thats good"
then
fade out"
我已经测试了许多csv阅读器设置(python3原生csv阅读器),但我无法正确读取此文件。输出应为:

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

但是使用,例如,
csv.reader(csv文件,分隔符=',',quotechar=',,doublequote=True,quoting=csv.QUOTE-ALL)
它输出:

['User1'、'1234'、'你好。她说得很好'、'那很好']

显示它无法解析嵌套引号,也无法解析其他行中的文本


如何正确解析此文件?

您将不得不修复此文件-如果没有更多信息,我不确定是否有人能告诉您最好的方法。问题出在这里。如果您在示例中完全按照原样阅读csv,那么您将得到以下结果:

“user”、“date”、“msg”\n“User1”、“1234”、“你好。她说“好的,那很好”\n然后\n说出来“


没有好的方法来区分哪些引号是好的,哪些逗号是好的,哪些新行(
\n
)是坏的。在格式正确的csv中,
\n
字符表示它是一个新行(即新条目),因此如果csv有一个条目跨多行拆分,则需要首先修复csv。

您不能。要么你需要将内部引号加倍
“嗨”她说。
要么转义内部引号
“嗨”她说。
-你需要预处理并修复你的文件。你不能指望你的CSV阅读器知道哪一行是有效的,哪一行是无效的。如果输入错误,请自己解析。您可能需要查看regex(
re
)来解析它,这并不难。是的,我已经尝试过您的双引号解决方案。我可以在一个唯一的单词之间使用双引号(使用正则表达式),但我不能在一个句子之间使用双引号,因为有时它会在csv字段之间使用双引号。你能帮我弄一下这个正则表达式规则吗?我正在使用
re