2016-04-05 84 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是4674,這意味着它顯示的最後〜250項):

{:"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

鍵名是由於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)