当我的csv文件看起来像这样:
make,model,color,doors,email
dodge,charger,black,4,practice1@whatever.com
ford,focus,blue,5,practice2@whatever.com
nissan,350z,black,2,practice3@whatever.com
mazda,miata,white,2,practice4@whatever.com
honda,civid,brown,4,practice5@whatever.com
corvette,stingray,red,2,practice6@whatever.com
ford,fiesta,blue,5,practice7@whatever.com
bmw,m4,black,2,practice8@whatever.com
audi,a5,blue,2,practice9@whatever.com
subaru,brz,black,2,practice10@whatever.com
lexus,rc,black,2,practice11@whatever.com
当我尝试运行代码时,我总是遇到此错误,
data [:model]
^^^^
我想这不像这样工作,但我想知道是否有一种方法使这工作。我只是试图让程序输出所有不同的模型。这是我的代码:
require "csv"
CSV.foreach("cars.csv", headers: true) do |row|
data = puts row.to_h
end
data [:model]
puts data
我得到我的csv文件,然后将其转换为哈希值,使其等于data
1条答案
按热度按时间2w3kk1z51#
您的数据变量没有在循环外定义,并且有一个额外的空格。要创建哈希值的哈希值(行)。
一种选择是使用
with_index
包含索引,并使用它来填充之前创建的空哈希:结果:
分组数据的另一个选项是将CSV文件读入数组,请参见文档中的
CSV.read
,以便能够根据请求对数据进行分组。在阵列上,您可以执行以下操作: