使用反斜杠和双引号提取数据 - Python CSV 阅读器

Fik*_*zil 5 python csv python-3.x

下面是我从 csv 文件中提取数据的代码(我从转储的 mysql 中获得了该文件)。

data = csv.reader(f, delimiter=',', quotechar='"')
Run Code Online (Sandbox Code Playgroud)

经过几次测试,我发现我上面的代码有一个大问题。它无法提取如下数据:

"25","Mike Ross","Tennok\"","NO"
Run Code Online (Sandbox Code Playgroud)

有什么想法可以解决这个问题吗?质量。

Jon*_*nts 6

csv模块希望引号字符在默认情况下加倍以表示它是一个文字",因此它会错误地分隔字段...

data = csv.reader(f, delimiter=',', quotechar='"')
# ['25', 'Mike Ross', 'Tennok\\",NO"']
Run Code Online (Sandbox Code Playgroud)

使用escapechar为忽略此行为:

data = csv.reader(f, delimiter=',', quotechar='"', escapechar='\\')
# ['25', 'Mike Ross', 'Tennok"', 'NO']
Run Code Online (Sandbox Code Playgroud)