为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

HUH函数 2022-06-07 19:36:45
我正在使用 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"']
查看完整描述

2 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

这是由逗号后的空格字符引起的。

如果您将阅读器配置为跳过分隔符后的空格,那么它将起作用:

>>> print(list(csv.reader(io.StringIO('ab, ",cd"'), skipinitialspace=True)))
[['ab', ',cd']]

顺便说一句,请参阅其他 CSV 阅读器选项的文档


查看完整回答
反对 回复 2022-06-07
?
HUWWW

TA贡献1874条经验 获得超12个赞

它没有损坏,这是预期的行为。

发生的情况是 csv 模块仅将引号视为引号,如果它就在分隔符之后

如果在此之前有一些东西(空格或其他东西),则引用被认为是数据的一部分。

zvone answer解释了如何解决这个问题(仅在空格的情况下)


查看完整回答
反对 回复 2022-06-07
  • 2 回答
  • 0 关注
  • 182 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号