CSV数据未正确解析

时间:2016-07-21 22:14:02

标签: ruby-on-rails ruby excel csv ruby-on-rails-5

我正在尝试导入一些CSV数据,但由于某种原因,它们的结构不正确且包含无效字符。例如,当我执行sale_hash["location"]时,它会返回nil

这是我正在使用的功能:

def self.import(file)
  CSV.foreach(file.path, headers: true, encoding:'iso-8859-1') do |row|
    sale_hash = row.to_hash
    p sale_hash
  end
end

我得到这样的东西:

{
  "date;day;time;location;station;washer;plate_number;O;I;W;total_price;;;;"
    => "23/04/16;SATURDAY;15:11;ALPHAMEGA LIN;GROUNDFLOOR;NIKOLAS APOSTOLIDES;KKY333;YES;NO;NO;Û2",
  nil => "95;;;;"
}

我所做的只是使用excel电子表格并将其导出为CSV。我在这里做错了吗?

1 个答案:

答案 0 :(得分:0)

是的,感谢Jordan和mu太短了,我通过添加以下col_sep来实现它:

def self.import(file)
  csv = CSV.read(file.path, headers: true, col_sep: ";")

  csv.each do |row|
    sale_hash = row.to_hash
    p sale_hash
  end
end