小编Ian*_*oks的帖子

CSV::Row 和 Hash 导航不起作用 Ruby 2.3.3 Rails 5.1

我已经使用解析了 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']可以工作吧?!?没有。仍然nilrow_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)

ruby csv hash parsing ruby-on-rails

5
推荐指数
1
解决办法
1421
查看次数

标签 统计

csv ×1

hash ×1

parsing ×1

ruby ×1

ruby-on-rails ×1