Python CSV解析,转义引号

时间:2019-04-02 08:09:26

标签: python csv parsing

我正在尝试使用csv.reader解析CSV文件,我的数据用逗号分隔,并且每个值都以引号引起来。示例:

"This is some data", "New data", "More \"data\" here", "test"

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

我尝试了如下代码:

    with open(filepath) as csv_file:
        csv_reader = csv.reader(csv_file, delimiter=',', quotechar='\\"')

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

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

1 个答案:

答案 0 :(得分:2)

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

csv.reader(csv_file, quotechar='"', delimiter=',', escapechar='\\')