有关如何使用vim将此CSV转换为ruby数组的任何想法?
启动CSV:
Year,Make,Model
1997,Ford,E350
2000,Mercury,Cougar
所需数组:
car_info = [
{'Year' => '1997', 'Make' => 'Ford', 'Model' => 'E350'},
{'Year' => '2000', 'Make' => 'Mercury', 'Model' => 'Cougar'},
]
我有>像上面的CSV这样的2000个条目,我想要一种快速重新格式化它以便在我的Rails应用程序中使用的方法。我想使用vim,但我也对其他选项持开放态度。
答案 0 :(得分:6)
FasterCSV.read("path/to/file.csv", :headers => true).map do |row|
{ "Year" => row[0], "Make" => row[1], "Model" => row[2] }
end
PS:安装faster_csv
gem
答案 1 :(得分:4)
在vim中,您可以使用全局搜索并替换为正则表达式:
:g/\(.*\),\(.*\),\(.*\)/s//{'Year' => '\1', 'Make' => '\2', 'Model' => '\3'}/g
然后相应地编辑结果文件的第一行和最后一行。