我有一个很大的散列,我想在 ruby 中获取特定值

i have a large hash and i want to get specific values in ruby

所以我有这么大的哈希:

> {"queryCost"=>1,
 "latitude"=>43.1232321,
 "longitude"=>59.3123213,
 "resolvedAddress"=>"43.1232321,59.3123213",
 "address"=>"43.1232321,59.3123213",
 "timezone"=>"Asia/Samarkand",
 "tzoffset"=>5.0,
 "days"=>[{"datetime"=>"2022-03-30",
  "datetimeEpoch"=>1648580400,
  "source"=>"obs"},
  "hours"=>
   [{"datetime"=>"00:00:00",
     "datetimeEpoch"=>1648580400,
     "source"=>"obs"},
    {"datetime"=>"01:00:00",
     "datetimeEpoch"=>1648584000,
     "source"=>"obs"},
    {"datetime"=>"02:00:00",
     "datetimeEpoch"=>1648587600,
     "source"=>"obs"},
    {"datetime"=>"03:00:00",
     "datetimeEpoch"=>1648591200,
     "source"=>"obs"},
    {"datetime"=>"04:00:00",
     "datetimeEpoch"=>1648594800,
     "source"=>"obs"},
    {"datetime"=>"05:00:00",
     "datetimeEpoch"=>1648598400,
     "source"=>"obs"},
    {"datetime"=>"06:00:00",
     "datetimeEpoch"=>1648602000,
     "source"=>"obs"}]},
   

我想要的是获取所有 24 小时,我可以使用此 hash_json['days'][0]['hours'] 1 1 手动获取它们[0]['datetime] 等等 chaning 0 到 24,但是我怎样才能做一个循环让我得到这样的东西:

遍历哈希

输入哈希小时数据时间

结束

输出: “00:00:00” “01:00:00” ...直到最后一个“24:00:00”。

我确实看到了一些示例,但它们在哪里很简单,可以在此哈希上使用它们,而且由于我是 ruby 的新手,所以我无法理解它。

您试图用 hash_json['days'][0]['hours'][0]['datetime] 一次做太多事情。我建议把它分成更小的部分。例如 days = hash_json['days']。现在你有了一个结构更简单的变量。在这种情况下,它是一个列表。您可以使用 days[0] 获取第一个元素,或者使用 days.eachdays.map 遍历列表。我建议您阅读 eachmap 以了解它们的优点和工作原理。