2016-04-05 3 views
0

あるファイル:私は、データをフェッチするために、この宝石を使用CSVの読み取りが出力は、私はこのようになりますCSVファイル持っている奇妙な

1ttAAAttAnaattFrench PolynesiattPFttAustralia and Oceaniatt-17.352606tt-145.509956 
2ttAAEttAnnabattAlgeriattDZttAfricatt36.822225tt7.809167 
3ttAAFttApalachicolattUnited StatesttUSttNorth Americatt29.7276066tt-85.0274416 
4ttAAGtt\NttBrazilttBRttSouth Americatt\Ntt\N 

を:https://github.com/tilo/smarter_csv

は、これは私がデータを表示するために使用するコードです

filename = 'db/csv/airports_codes.csv' 
options = { 
    :col_sep => 'tt', 
} 
records = SmarterCSV.process(filename, options) 

puts records 

これらのファイルは、後でこのコードを変更してデータでシードするため、これらのファイルをseeds.rbファイルに入れます。この最後のコード行はそこにあるので、どのように見えるかを見ることができます。だから実行するrake db:seed

約5k行があるので、出力は明らかに巨大です。今、最初の問題は、私の端末のすべてのデータを見ることができないということです。私が先頭にスクロールすると、これは最初の項目である(そのIDに注意し、それが最後の〜250個の項目を表示意味4674です):

{:"1"=>4674, :aaa=>"YPJ", :anaa=>"Aupaluk", :french_polynesia=>"Canada", :pf=>"CA", :australia_and_oceania=>"North America", :"_17.352606"=>59.2967, :"_145.509956"=>-69.5997} 

は、どのように私は他の項目を見ていますか?

第2の問題は、キー名が本当に奇妙なことです。それらの名前を変更するにはどうすればいいですか?ハッシュの代わりに配列を使用するにはどうすればよいですか?

+2

キー名は、最初の行をヘッダー行として扱うSmarterCSVによるものです。おそらくそれを上書きするオプションがあります。 –

答えて

0

あなたはオプションのオプションで

:headers_in_file => false 

を設定した場合、それが問題を整理する必要があります。 つまり

filename = 'db/csv/airports_codes.csv' 
options = { 
    :col_sep => 'tt', 
    :headers_in_file => false 
} 
records = SmarterCSV.process(filename, options) 
関連する問題