【问题标题】:Ruby to read csv files with double quotesRuby 用双引号读取 csv 文件
【发布时间】:2022-01-15 01:49:15
【问题描述】:

CSV 文件,我正在阅读

"Customer","ID","Host name","Created","Status","OS","OS Version","RAM"
"XXX","1234","abcd","2021-12-10 12:43:09","Linux Server","RedHat RHEL82gen2","2,048"

这个 csv 文件的每一列都有"...",RAM 列的值是, 我不会阅读这个 csv,它有双引号,并且它的列的值中有一个逗号(,)。

我尝试过使用quote_char: '"'

【问题讨论】:

  • 你能发布关于你如何阅读它的 sn-p / 示例代码吗?还有你用什么图书馆? Ruby 的标准 CSV 库允许配置列分隔符

标签: ruby csv


【解决方案1】:

" 是默认引号字符,, 是默认字段分隔符CSV.parse 可以按原样完美读取您的数据:

require 'csv'

data = <<-EOD
"Customer","ID","Host name","Created","Status","OS","OS Version","RAM"
"XXX","1234","abcd","2021-12-10 12:43:09","Linux Server","RedHat RHEL82gen2","2,048"
EOD

CSV.parse(data)
#=> [
#     ["Customer", "ID", "Host name", "Created", "Status", "OS", "OS Version", "RAM"],
#     ["XXX", "1234", "abcd", "2021-12-10 12:43:09", "Linux Server", "RedHat RHEL82gen2", "2,048"]
#   ]

注意最后一个值是"2,048"——逗号被正确解析。

【讨论】:

  • 谢谢。虽然它给了我输出,但我不希望“”在那里。期望结果是 Customer xxx ID 1234 Host name abcd Created 2021-12-10 12:43:09 OS Linux Server OS Version RedHat RHEL82gen2 RAM 2,048
  • @Shruthi 有引号是因为它是一个 Ruby 字符串,如果你 puts 的值你不会看到引号。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-28
  • 1970-01-01
  • 2019-05-02
相关资源
最近更新 更多