哈希:没有将字符串隐式转换为整数

iqxoj9l9  于 2022-10-15  发布在  Ruby
关注(0)|答案(1)|浏览(439)

在Ruby中,如果我有一个名为Vehicles.csv的CSV文件:

make,model,color,doors           
dodge,charger,black,4           
ford,focus,blue,5             
nissan,350z,black,2                          
mazda,miata,white,2            
honda,civid,brown,4           
corvette,stingray,red,2            
ford,fiesta,blue,5

这是我的代码:

require "csv"
file = CSV.open("vehicles.csv", headers: :first_row).map(&:to_h)
puts file["make"]

我将这个CSV文件转换为散列,然后尝试输出散列的一个键,但仍然得到“没有将字符串隐式转换为整数”。必须做什么?我正在尝试将如下所示的内容作为输出:

dodge
ford
nissan
mazda
honda
corvette
ford
mefy6pfw

mefy6pfw1#

file = CSV.open("vehicles.csv", headers: :first_row).map(&:to_h)以散列数组的形式离开文件。试试这个,看看我的意思。

require "csv"
file = CSV.open("vehicles.csv", headers: :first_row).map(&:to_h)
puts file.class
puts file.first.class
puts file.first
puts file.map {_1["make"]}

实现所需内容的另一种方法是将CSV文件读入表中,然后使用valuesat方法获取给定列中的所有数据

file = CSV.open("vehicles.csv", headers: :first_row)
table = file.read
puts table.values_at("make")

相关问题