我正在尝试使用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解析之前,用一个单引号'替换所有字符\“字符-但是,我想知道是否有一种更好的方法而不修改原始数据。
答案 0 :(得分:2)
这里的问题是,您需要定义一个escapechar,以便csv阅读器知道将\“视为”。
csv.reader(csv_file, quotechar='"', delimiter=',', escapechar='\\')