当前位置: 首页 > 知识库问答 >
问题:

Ruby解析哈希

穆宾白
2023-03-14

所以我使用gem文件从reddit的首页拉链接。gem函数返回一个哈希,其中包含首页上的所有链接及其所有信息(评论、业力、作者、日期、链接、上升、下降等的#)。下面是包含我首页上第一个链接信息的哈希请求:

{"modhash"=

结尾<code>,</code>分隔下一个链接,如下所示:

{“种类”=

我基本上需要某种方法来解析这个散列的每个条目,这样我就可以将所有相关的东西存储到一个数组中。实际上,我只想将< code >“title”和< code >“URL”部分存储到一个数组中。我试过这样的东西:

@red.get_listing().each do |x['title']|
    puts x
end

但我意识到这是一个哈希的哈希。所以我有点不知道如何解析这个。

共有3个答案

纪佐
2023-03-14

您实际上不需要解析它们,只需访问其值:

hash[:data][:title]
hash[:data][:url]
尉迟墨竹
2023-03-14
hash = {"modhash"=>"ubekfji9tr491ba98806d33ec78693dc157579335eb1ab283b", 
"children"=>[{"kind"=>"t3", "data"=>{"domain"=>"i.imgur.com", "banned_by"=>nil, "media_embed"=>{}, "subreddit"=>"pics", "selftext_html"=>nil, "selftext"=>"", "likes"=>nil, "link_flair_text"=>nil, "id"=>"1dt29e", "clicked"=>false, "title"=>"Our plumber in Italy put himself out there to ask us for help on his English homework :) Hope he passes his finals!", "media"=>nil, "score"=>3700, "approved_by"=>nil, "over_18"=>false, "hidden"=>false, "thumbnail"=>"http://b.thumbs.redditmedia.com/Fdid4luCfXah0bQ7.jpg", "subreddit_id"=>"t5_2qh0u", "edited"=>false, "link_flair_css_class"=>nil, "author_flair_css_class"=>nil, "downs"=>17890, "saved"=>false, "is_self"=>false, "permalink"=>"/r/pics/comments/1dt29e/our_plumber_in_italy_put_himself_out_there_to_ask/", "name"=>"t3_1dt29e", "created"=>1367893951.0, "url"=>"http://i.imgur.com/3xn1c8s.jpg", "author_flair_text"=>nil, "author"=>"Junpha", "created_utc"=>1367865151.0, "distinguished"=>nil, "num_comments"=>553, "num_reports"=>nil, "ups"=>21590}},{"kind"=>"t3", "data"=>{"domain"=>"i.imgur.com", "banned_by"=>nil, "media_embed"=>{}, "subreddit"=>"funny", "selftext_html"=>nil, "selftext"=>"", "likes"=>nil, "link_flair_text"=>nil, "id"=>"1dt4xv", "clicked"=>false, "title"=>"What a beautiful, majestic.... oops", "media"=>nil, "score"=>2848, "approved_by"=>nil, "over_18"=>false, "hidden"=>false, "thumbnail"=>"http://a.thumbs.redditmedia.com/vkstE1PFr9iyYpux.jpg", "subreddit_id"=>"t5_2qh33", "edited"=>false, "link_flair_css_class"=>nil, "author_flair_css_class"=>nil, "downs"=>8128, "saved"=>false, "is_self"=>false, "permalink"=>"/r/funny/comments/1dt4xv/what_a_beautiful_majestic_oops/", "name"=>"t3_1dt4xv", "created"=>1367895955.0, "url"=>"http://i.imgur.com/62q1jWN.gif", "author_flair_text"=>nil, "author"=>"themisc", "created_utc"=>1367867155.0, "distinguished"=>nil, "num_comments"=>279, "num_reports"=>nil, "ups"=>10976}}
]}


hash['children'].map { |child| child['data']['url'] }
hash['children'].map { |child| child['data']['title'] }

或者如果您想使用符号(并且在轨道中)

hash.with_indifferent_access[:children].first[:data][:title]
李星辰
2023-03-14
hash[:children].each do |child|
  puts child[:title]
  puts child[:url]
end

这有帮助吗?

 类似资料:
  • 我得到了一个文件来表示图中节点的邻接表,作为我需要解析的文本文件。第一行是节点总数。第二行是node1,以及它所连接的节点列表(无向图)。例如 第1行:该图总共有7个节点。< br >线路2:节点1连接到节点2、节点3。< br >线路3:节点2连接到节点1、节点3、节点4、节点5和节点7。 -1有点没用。 这是我当前的ruby实现。我正试图找到一种方法来设置它 我的节点类有一个邻接节点数组,我可

  • 主要内容:创建哈希,实例,实例,哈希内置方法,实例哈希(Hash)是类似 "key" => "value" 这样的键值对集合。哈希类似于一个数组,只不过它的索引不局限于使用数字。 Hash 的索引(或者叫"键")几乎可以是任何对象。 Hash 虽然和数组类似,但却有一个很重要的区别:Hash 的元素没有特定的顺序。 如果顺序很重要的话就要使用数组了。 创建哈希 与数组一样,有各种不同的方式来创建哈希。您可以通过 new 类方法创建一个空的哈希:

  • 最近拿起Ruby,一直在摆弄它。我想学习如何使用regex或其他Ruby技巧来检查给定文本行中的某些单词、空格字符、有效格式等。 假设我有一个严格如下格式的订单列表: 分号后面有一个空格,每个逗号后面没有空格,结尾没有尾随空格等等。如何使用Ruby检查此格式中的错误?例如,我的检查应该失败: 我的目标是将字符串拆分为“”并检查第一个单词是否为“cost:”,第二个单词是否为数字等等,但我意识到拆分

  • 本章节我们学习另外一个可以组合多个的对象类——哈希,了解哈希是什么,如何创建一个哈希以及哈希对象的实例方法。 1. 什么是哈希 哈希是键值对的集合。—— 官方定义 哈希是另一种非常有用且广泛使用的东西,可用于存储其他对象。与仅作为列表的数组不同,哈希表就像字典。我们通过键(key)来查找哈希中的值(value)。好比我们有一个英汉词典,我们通过查找“hello的单词来找到中文意思"你好",此时,“

  • 考虑@data是一个带有日期、类、名称和等级字段的Active记录数组。假设我想以两个哈希结束,一个是每个名称的所有日期的唯一集合;另一个按类、日期和名称细分以显示等级。 > 导致错误: nil:NilClass的未定义方法“[]=”

  • 问题内容: 我可以使用一种方法 但是我该如何以user_lib的身份重新找回它? 问题答案: 您想要或: 此处的关键是用作从磁盘加载JSON字符串的一种简单方法,以便可以对其进行解析。或者,如果文件中包含UTF-8数据: 我已经链接到上面的JSON文档,所以您应该阅读它以获取更多详细信息。但总而言之: —在特定对象上创建JSON字符串的方法。 —从对象创建JSON字符串。 —创建一个JSON字符串