使用 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 处理转义引号的主要内容,如果未能解决你的问题,请参考以下文章