gpt4 book ai didi

arrays - Ruby:根据条件从深层嵌套的 JSON 结构中提取元素

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

想要从每个具有 marketName == 'Moneyline' 的市场中提取每个 marketID。尝试了 .map.reject 和/或 .select 的几种组合,但无法缩小范围,因为它很复杂结构让我感到困惑。

事件有很多市场事件也有很多。结构示例(为简洁起见尝试对其进行编辑):

{"currencyCode"=>"GBP",
"eventTypes"=>[
{"eventTypeId"=>6423,
"eventNodes"=>[
{"eventId"=>28017227,
"event"=>
{"eventName"=>"Philadelphia @ Seattle"
},
"marketNodes"=>[
{"marketId"=>"1.128274650",
"description"=>
{"marketName"=>"Moneyline"}
},
{"marketId"=>"1.128274625",
"description"=>
{"marketName"=>"Winning Margin"}
}}}]},
{"eventId"=>28018251,
"event"=>
{"eventName"=>"Arkansas @ Mississippi State"
},
"marketNodes"=>[
{"marketId"=>"1.128299882",
"description"=>
{"marketName"=>"Under/Over 60.5pts"}
},
{"marketId"=>"1.128299881",
"description"=>
{"marketName"=>"Moneyline"}
}}}]},
{"eventId"=> etc....

尝试了各种各样的东西,例如,

markets = json["eventTypes"].first["eventNodes"].map {|e| e["marketNodes"].map { |e| e["marketId"] } if (e["marketNodes"].map {|e| e["marketName"] == 'Moneyline'})}
markets.flatten
# => yields every marketId not every marketId with marketName of 'Moneyline'

在没有其他信息的情况下,从 Moneyline 市场获取包含每个 marketId 的简单数组就足够了。如果愿意,也可以使用 Rails 方法。

抱歉,如果我的编辑弄乱了语法。 Here's the source .在解析 JSON 之后,它看起来只使用 => 而不是 :

谢谢!

最佳答案

我喜欢嵌套映射和选择 :D

require 'json'

hash = JSON.parse(File.read('data.json'))

moneyline_market_ids = hash["eventTypes"].map{|type|
type["eventNodes"].map{|node|
node["marketNodes"].select{|market|
market["description"]["marketName"] == 'Moneyline'
}.map{|market| market["marketId"]}
}
}.flatten

puts moneyline_market_ids.join(', ')
#=> 1.128255531, 1.128272164, 1.128255516, 1.128272159, 1.128278718, 1.128272176, 1.128272174, 1.128272169, 1.128272148, 1.128272146, 1.128255464, 1.128255448, 1.128272157, 1.128272155, 1.128255499, 1.128272153, 1.128255484, 1.128272150, 1.128255748, 1.128272185, 1.128278720, 1.128272183, 1.128272178, 1.128255729, 1.128360712, 1.128255371, 1.128255433, 1.128255418, 1.128255403, 1.128255387

关于arrays - Ruby:根据条件从深层嵌套的 JSON 结构中提取元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40698572/

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