Ruby on rails 读取CSV文件时,输出很奇怪
我有一个CSV文件,如下所示:Ruby on rails 读取CSV文件时,输出很奇怪,ruby-on-rails,csv,Ruby On Rails,Csv,我有一个CSV文件,如下所示: 1ttAAAttAnaattFrench PolynesiattPFttAustralia and Oceaniatt-17.352606tt-145.509956 2ttAAEttAnnabattAlgeriattDZttAfricatt36.822225tt7.809167 3ttAAFttApalachicolattUnited StatesttUSttNorth Americatt29.7276066tt-85.0274416 4ttAAGtt\NttBr
1ttAAAttAnaattFrench PolynesiattPFttAustralia and Oceaniatt-17.352606tt-145.509956
2ttAAEttAnnabattAlgeriattDZttAfricatt36.822225tt7.809167
3ttAAFttApalachicolattUnited StatesttUSttNorth Americatt29.7276066tt-85.0274416
4ttAAGtt\NttBrazilttBRttSouth Americatt\Ntt\N
我使用此gem获取数据:
这是我用来在终端控制台中显示数据的代码:
filename = 'db/csv/airports_codes.csv'
options = {
:col_sep => 'tt',
}
records = SmarterCSV.process(filename, options)
puts records
我将这些文件放在seeds.rb文件中,因为稍后我将修改此代码,以便为数据库添加数据种子。最后一行代码就在那里,所以我可以看到它的样子。所以我运行rake db:seed
由于大约有5公里的生产线,所以产量明显很大。现在的第一个问题是,我无法看到终端中的所有数据。当我滚动到顶部时,这是第一个项目(注意ID为4674,这意味着它最后显示了250个项目):
如何查看其他项目
第二个问题是,密钥名真的很奇怪。如何重命名它们,或者更好地说,如何使用数组而不是哈希?如果您设置了该选项
:headers_in_file => false
在选项中,这将解决问题。
i、 e
密钥名称是由于SmarterCSV将第一行视为标题行而产生的。可能有一个选项可以覆盖它。
:headers_in_file => false
filename = 'db/csv/airports_codes.csv'
options = {
:col_sep => 'tt',
:headers_in_file => false
}
records = SmarterCSV.process(filename, options)