【问题标题】:How to get csv.writer to remove the delimiter character inside of columns?如何让 csv.writer 删除列内的分隔符?
【发布时间】:2017-04-27 18:04:54
【问题描述】:

我正在尝试将 json 表转换为 csv 文件,但问题是当字段包含分隔符时,它会被复制相同的内容,并且以后可能会导致一些解释问题。 csv.writer 中是否有一个选项可以删除字段内的分隔符(如果存在)?或者至少用我猜的引号括起来。

【问题讨论】:

  • 可能类似于data.replace(",", "") ?
  • 为什么要删除分隔符,剥夺您可能有价值的信息?此外,分隔符应该自动引用,这种情况当然是由csv模块处理的,你应该没有任何问题。你能提供一个minimal reproducible example 吗?
  • @Jean-FrançoisFabre 因为当您尝试使用 R 读取它时,它会导致错误,因为检测到某些行的列比其他行多。同样你是对的 csv.writer 似乎会自动引用包含分隔符的字段,但这似乎只适用于默认分隔符“,”,如果你将其更改为“;”它不再引用包含“;”的字段
  • @ChiseledAbs:这听起来像是 csv 模块中的错误,但我无法重现您描述的行为;如果我创建一个csv.writer(f, delimiter=';'),生成的对象会自动为我转义新的分隔符。正如 Jean 已经问过的那样,您能否创建一个导致 csv 模块无法正确转义分隔符的 Python 代码的MCVE?如果在某些情况下确实无法逃脱分隔符,则应该将其报告为错误。

标签: python csv


【解决方案1】:

尝试通过

quoting=csv.QUOTE_ALL

csv.writer 构造函数。这将强制库引用所有字段。

这里是quoting 参数文档的链接和csv.QUOTE_ALL 文档的链接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-23
    • 2018-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    • 1970-01-01
    相关资源
    最近更新 更多