我已经使用解析了 csv CSV.parse,并逐行导航它。所以我们正在查看的对象是一个CSV::Row被称为row
这是我尝试导航时发生的情况的屏幕截图row:
屏幕截图
正如你所看到的,我可以打电话.headers(),正如你所期望的那样,Strain它在列表中
当你观察物体本身时,你会发现"Strain":"818 Headband"
所以row['Strain']应该等于8181 Headband除了它返回nil
当然row.Strain,我尝试过row["Strain"],,,row[Strain]但row[:Strain]都没有成功。
我还认为它可能包含在一个单项数组中,所以我尝试了,row[0]['Strain']并且也返回了nil,这并不奇怪。
假设问题出在CSV::Row对象上,我调用row_hash = row.to_hash()该对象以哈希形式获取。
现在我们已经在基本的 ruby 中了,当然像这样的普通调用也row_hash['Strain']可以工作吧?!?没有。仍然nil。
row_hash 的视图
我很困惑,这根本不是复杂的代码。Hash和的文档CSV::Row都列为[]一种方法,我在谷歌上搜索到的所有文章都列为row['key']正确的格式......但它对我不起作用。
请帮忙,我有一系列这样的 csv,我需要用它们来种子数据库,如果我无法导航哈希,我就无法做到这一点!
2018 年 5 月 15 日中午 12:51 编辑:
csv.each do |row|
row.each do …Run Code Online (Sandbox Code Playgroud)