我正在使用ruby CSV.阅读大量数据.库有时会遇到格式不好的行,例如:

"Illegal quoting in line 53657."

忽略这一行并跳过它,然后遍历每个csv并修改格式会更容易.我该怎么做?

推荐答案

我在一行中遇到了这个问题,比如123,456,a"b"c

问题是CSV解析器希望"个字符(如果出现)完全围绕逗号分隔的文本.

解决方案使用除"以外的引号字符,我确信该字符不会出现在我的数据中:

CSV.read(filename, :quote_char => "|")

Ruby相关问答推荐

RSpec:为什么 `instance_double` 可以与 StandardError 一起使用,但不能与其他异常类一起使用?

为什么在if语句中的赋值操作不会在条件判断之前发生?

Ruby:一个方法可以返回不同类型的对象吗?

Ruby 避免类方法并保持其类型系统简单优雅的秘诀

当我在 Ruby 中围绕最后一个字符拆分时,如何拆分字符串?

是否可以在 Ruby 中使用正则表达式匹配字符串\b(退格字符)?

将数组转换 for each 元素的嵌套哈希

是否应该在生产时缩小服务器代码?

如何在加载文件时禁用重新定义常量的警告

无法在 Heroku 教程中使用 Python 启动工头

Ruby数组中的`return`#map

判断 Ruby Gem 的可用性

Vagrant - 如何拥有特定于主机平台的配置步骤

如何绘制 git repo 的代码行历史记录?

如何仅从 Gemfile 中查看依赖关系树?

Jekyll - 找不到命令

了解 Ruby 的加载路径

判断 Ruby 中是否存在 URL

为什么在 ruby​​ 中动态创建大量符号不是一个好主意(对于 2.2 之前的版本)?

如何在ruby脚本中隐藏终端的密码输入