{ :page-6ren">
gpt4 book ai didi

Ruby 在转换后的 JSON 哈希数组中按名称查找键

转载 作者:太空宇宙 更新时间:2023-11-03 16:25:26 25 4
gpt4 key购买 nike

我有一个从 JSON 数据转换而来的 Ruby 散列,它看起来像这样:

{ :query => {
:pages => {
:"743958" => {
:pageid => 743958,
:ns => 0,
:title => "Asterix the Gaul",
:revisions => [ {
:contentformat => "text/x-wiki",
:contentmodel => "wikitext",
:* => "{{Cleanup|date=April 2010}}\n{{Infobox graphic novel\n<!--Wikipedia:WikiProject Comics-->...

所有好东西都在 revisions 数组中,然后是 Infobox 散列。

我遇到的问题是获取 Infobox 哈希。我似乎无法理解它。其他条目的 pagespageid 散列可能不存在,当然 ID 会有所不同。

我已经尝试了所有我能想到的方法,例如 .map.select.find。 include? 等无济于事,因为它们不是递归的,不会进入每个键和数组。

我在 StackOverflow 中看到的所有答案都是通过名称在一维数组中获取值,这没有帮助。

如何从中获取信息框数据?

最佳答案

这是您要找的吗?

pp data
=> {:query=> {:pages=>
{:"743958"=>
{:pageid=>743958,
:ns=>0,
:title=>"Asterix the Gaul",
:revisions=>
[{:contentformat=>"text/x-wiki",
:contentmodel=>"wikitext",
:*=>"{{Cleanup..."}]}}}}


# just return data from the first revisionb
data[:query][:pages].map{|page_id,page_hash| page_hash[:revisions].first[:"*"]}
=> ["{{Cleanup..."]


# get data from all revisions
data[:query][:pages].map{|page_id,page_hash| page_hash[:revisions].map{|revision| revision[:"*"] }}.flatten
=> ["{{Cleanup..."]

关于Ruby 在转换后的 JSON 哈希数组中按名称查找键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25722708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com