通过smartercsv gem导致csv导入错误

时间:2017-09-22 12:14:49

标签: ruby-on-rails csv smartercsv

我有这个csv结构

"CATEGORY";"NAME";"AGE"
"Red";"John";"34"

当我通过smarter_csv gem导入文件时,我得到了这个哈希

{:"\"CATEGORY\""=>"\"Red\"", :"\"NAME\""=>"\"John\"", :"\"AGE\""=>"\"34\""}

我使用的代码如下

options = {:col_sep => ";",:row_sep => :auto, :quote_char => "\x00"}
SmarterCSV.process(save_folder, options) do |array|
    Item.create(array.first)
end

让我感到困惑的是在每个哈希项目中添加的内容。我之前使用过相同的方法没有问题,我不明白出了什么问题,但预期的哈希应该是计划文本,没有反斜杠和其他报价。 作为一个注释,我不使用“; quote_char =>”\ x00“”选项我得到格式错误的csv错误。

1 个答案:

答案 0 :(得分:0)

这开箱即用,但您选择的quote_char不正确;它应该是'"',这是默认设置。

      require 'smarter_csv'
      SmarterCSV::VERSION
       => "1.2.3"

      data = SmarterCSV.process('/tmp/test.csv', {:col_sep => ";"})
       => [{:category=>"Red", :name=>"John", :age=>34}]

      # or like this:

      data = SmarterCSV.process('/tmp/test.csv', {
         :col_sep => ";",:row_sep => :auto, :quote_char => '"'
      })
       => [{:category=>"Red", :name=>"John", :age=>34}]