【问题标题】:csv ignore comma inside double quotecsv忽略双引号内的逗号
【发布时间】:2017-08-08 01:52:39
【问题描述】:
"Medical Center Emergency Physicians \"North Shore\"  Houston, TX  EM  MD-DO",2680,18882

我希望它被读取为长度为 3 的列表使用 python csv 模块这是我的预期输出

["Medical Center Emergency Physicians \"North Shore\" Houston, TX EM MD-DO", '2680', 18882]

我已经尝试了很多使用不同的参数。但是我尝试过的所有以下方法都不适合我。它们都输出一个长度为 4 的列表。我认为这是由 Huston 后面的逗号引起的。但是既然是双引号,我们怎么能忽略它呢?

csv_reader = csv.reader(f, doublequote=True, quoting=csv.QUOTE_ALL)
csv_reader = csv.reader(f, doublequote=False, quoting=csv.QUOTE_ALL)
csv_reader = csv.reader(f, doublequote=False)
csv_reader = csv.reader(f, doublequote=True)
csv_reader = csv.reader(f)

【问题讨论】:

标签: python csv


【解决方案1】:

只需添加一个转义字符来处理 csv 中的转义引号

csv.reader(f, doublequote=True, quoting=csv.QUOTE_ALL, escapechar='\\')

【讨论】:

    【解决方案2】:

    你必须使用:

    csv.reader(f, quotechar='"')
    

    可能还有一些参数告诉读者引号用\ 转义。但是如果您当前的输出是 4 个字段,它似乎会在 , 上拆分,忽略 \"

    很可能是这样的:

    csv.reader(f, quotechar='"', escapechar='\\')
    

    那些\ 不应出现在您的输出中(除非您需要它们进行进一步处理)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-26
      • 1970-01-01
      • 2015-10-23
      • 1970-01-01
      • 2011-12-25
      • 2020-04-05
      相关资源
      最近更新 更多