2016-07-21 8 views
0

一部のCSVデータをインポートしようとしていますが、何らかの理由で正しく構成されておらず、無効な文字が含まれています。たとえば、sale_hash["location"]を実行すると、nilが返されます。CSVデータが正しく解析されない

{ 
    "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にエクスポートしました:私はこのような何かを得る

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 

:ここ

は、私が使用しています機能です。私はここで何か間違っていますか?

+0

あなたはセミコロン区切り文字でそれをエクスポートように見えます。 CSVライブラリのデフォルトはコンマ区切り文字です。 –

+0

どこを変えるのですか? –

+0

http://ruby-doc.org/stdlib-2.3.1/libdoc/csv/rdoc/CSV.html –

答えて

0

右ので、ヨルダンのおかげとムーは、私はそれが次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 
関連する問題