我有这个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错误。
答案 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}]