我正试图从一个我无法控制的外部系统解析CSV文件。
CSV示例:
qw""erty,"a""b""c""d,ef""""g"
应解析为:
[['qw"erty', 'a"b"c"d,ef""g']]
但是,我认为Python的csv模块不希望在单元格一开始没有包装在引号字符中时对引号字符进行转义。
csv.reader(my_file)
(使用默认值doublequote=True
)返回:
['qw""erty', 'a"b"c"d,ef""g']
有什么方法可以用python csv模块来解析它吗?
接下来是@JackManey注释,他建议用
'\\"'
替换双引号中'""'
的所有实例。如果我们现在在双引号的单元格中,就没有必要识别,我们可以用
'\\"'
替换'""'
的所有实例。 Python documentation says:但是,如果原始单元格已经包含转义字符,则仍然会出现这种情况,例如:
'qw\\\\""erty'
正在生成[['qw\\"erty']]
。所以在解析之前,我们也必须转义转义字符。最终解决方案:
正如@JackManey所建议的,在读取文件之后,可以用一个双引号替换两个双引号。
相关问题 更多 >
编程相关推荐