ruby-on-rails - Ruby/Rails,用引号之间的换行符解析 CSV

标签 ruby-on-rails ruby csv

有没有办法告诉 CSV 对象引号之间的换行符不是行分隔符?

我的 CSV 文件是:

"a","b","c"
1,"some
text with line break",21
2,"blah",4

我的代码是:

CSV.foreach(file_path, headers: true) do |row|
  puts row
end

我希望它只返回两行,但它返回了三行。

最佳答案

您(错误地)通过打印的行数来判断行数。它返回两个。去图:

[4] pry(main)> CSV.foreach('example.csv', headers: true).to_a
=> [
 #<CSV::Row "a":"1" "b":"some\ntext with line break" "c":"21">,
 #<CSV::Row "a":"2" "b":"blah" "c":"4">
]

您的代码输出三行,因为您正在打印行并且换行符按原样打印。这使得它看起来好像一排变成了两排。 以同样的方式思考,我会说您的源 CSV 包含 4(四!)行。但事实并非如此。

关于ruby-on-rails - Ruby/Rails,用引号之间的换行符解析 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32931813/

相关文章:

python - 如何读取csv文件并提取特定列?

ruby-on-rails - Rails 为 coinbase 设置 oauth2

ruby-on-rails - Controller 操作引发错误

ruby-on-rails - 在Sublime中查看时test.log中的“ESC”字符

ios - 克隆时 cocoa pod 卡住

ruby-on-rails - 为什么在 Ubuntu 上安装 Rails gem 会引发 Zlib::GzipFile::Error?

ruby-on-rails - 异常通知程序插件不发送电子邮件

javascript - 通过 html 将 ruby​​ on Rails 变量传递给 javascript 函数

Windows命令行中的Python编码: Chcp 932 doesn't work?

linux - 如果无法通过 linux 获取数据,我如何不发送文件