我有一个很大的散列,我想在 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.each
或 days.map
遍历列表。我建议您阅读 each
和 map
以了解它们的优点和工作原理。
所以我有这么大的哈希:
> {"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.each
或 days.map
遍历列表。我建议您阅读 each
和 map
以了解它们的优点和工作原理。