Python CSV 解析,转义引号字符

Kil*_*ode 5 python csv parsing

我正在尝试使用 csv.reader 解析 CSV 文件,我的数据用逗号分隔,每个值都以引号开头和结尾。例子:

"This is some data", "New data", "More \"data\" here", "test"
Run Code Online (Sandbox Code Playgroud)

我的问题是第三个值,我得到的带有引号的数据有一个转义字符,以表明它是数据的一部分。python CSV 阅读器不使用此转义字符,因此会导致解析错误。

我试过如下代码:

    with open(filepath) as csv_file:
        csv_reader = csv.reader(csv_file, delimiter=',', quotechar='\\"')
Run Code Online (Sandbox Code Playgroud)

但是我收到一个错误,抱怨 quotechar 不是 1 个字符。

我目前的解决方案只是在使用 csv.reader 解析之前用单引号 ' 替换所有字符 \" 字符 - 但是,我想知道是否有更好的方法而不修改原始数据。

Gre*_*reg 7

这里的问题是您需要定义一个escapechar,以便 csv 阅读器知道将 \" 视为 "。

csv.reader(csv_file, quotechar='"', delimiter=',', escapechar='\\')
Run Code Online (Sandbox Code Playgroud)