使用 Python 的 csv.reader 处理转义引号

Posted

技术标签:

【中文标题】使用 Python 的 csv.reader 处理转义引号【英文标题】:Handling escaped quotes with Python's csv.reader 【发布时间】:2014-07-16 19:48:12 【问题描述】:

使用 python 的 csv 模块,我正在尝试读取一些 CSV 数据。

我正在使用代码:

dialect = csv.Sniffer().sniff(csv_file.read(1024))
csv_file.seek(0)
reader = csv.reader(csv_file, dialect)

for line in reader:
    ...

一切正常,除了包含转义引号的行:

11837,2,NULL,"\"The Take Over, The Breaks Over\"","Fall Out Boy"

这样一行被标记为:

['11837', '2', 'NULL', '\\The Take Over', ' The Breaks Over\\""', 'Fall Out Boy']

方言包含以下属性:

dialect.quotechar = "
dialect.quoting = 0
dialect.escapechar = None
dialect.delimiter = ,
dialect.doublequote = False
dialect.lineterminator = \n

除了编写自己的 CSV 解析器之外,我还能做什么?

【问题讨论】:

啊,我已经写了自己的解析器了:) 【参考方案1】:

如果我没记错的话,dialect.escapechar = None 应该是dialect.escapechar = '\\'

If you look at the examples in the docs,它似乎确实建议进行更改

【讨论】:

我已经尝试设置dialect.escapechar = '\\',但结果还是一样:( 哦,还设置dialect.quoting = csv.QUOTE_MINIMAL

以上是关于使用 Python 的 csv.reader 处理转义引号的主要内容,如果未能解决你的问题,请参考以下文章

使用Python模块儿csv快速处理csv文件

python之小应用:读取csv文件并处理01数据串

Python中CSV模块

用python处理文本数据 学到的一些东西

如何在 Python 中为 csv.reader 设置语言环境?

学习csv