读取CSV文件时输出很奇怪

时间:2016-04-05 12:08:12

标签: ruby-on-rails csv

我有一个CSV文件,如下所示:

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

我使用此gem来获取数据: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}

如何查看其他商品?

第二个问题是关键名称真的很奇怪。如何重命名它们,甚至更好,我如何使用数组而不是哈希?

1 个答案:

答案 0 :(得分:0)

如果您设置选项

:headers_in_file => false

在选项中,应该排除问题。 即。

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