猿问

csv模块因逗号作为分隔符而损坏

我正在使用 python 的csv模块并使用引号来包含包含分隔符的字段。


该文件a.txt如下所示:


ab, ",cd"

我得到以下信息,表明它没有转义双引号中的逗号。


In [27]: with open('a.txt', newline='') as csvfile:

    ...:     reader = csv.reader(csvfile, delimiter=',')

    ...:     for row in reader:

    ...:         if row:

    ...:             print(row)

    ...:

['ab', ' "', 'cd"']


HUH函数
浏览 184回答 2
2回答

莫回无

这是由逗号后的空格字符引起的。如果您将阅读器配置为跳过分隔符后的空格,那么它将起作用:>>> print(list(csv.reader(io.StringIO('ab, ",cd"'), skipinitialspace=True))) [['ab', ',cd']]顺便说一句,请参阅其他 CSV 阅读器选项的文档。

HUWWW

它没有损坏,这是预期的行为。发生的情况是 csv 模块仅将引号视为引号,如果它就在分隔符之后。如果在此之前有一些东西(空格或其他东西),则引用被认为是数据的一部分。zvone answer解释了如何解决这个问题(仅在空格的情况下)
随时随地看视频慕课网APP

相关分类

Python
我要回答