따라서 내 previous question의 확장자로. 나는 그 문제를 발견했다. 반환 된 값 은 해시가이지만 매우 깊습니다.Ruby 딥 해시에 액세스
@reddit.get_listing().fetch('data',{}).fetch('children',{}).each do |child|
puts child['data']
end
그래서
그 인쇄 :
{"domain"=>"i.imgur.com", "banned_by"=>nil, "media_embed"=>{}, "subreddit"=>"pics", "selftext_html"=>nil, "selftext"=>"", "likes"=>nil, "link_flair_text"=>nil, "id"=>"1dtlho", "clicked"=>false, "title"=>"It almost looks like they're holding up a photograph", "media"=>nil, "score"=>3866, "approved_by"=>nil, "over_18"=>false, "hidden"=>false, "thumbnail"=>" http://f.thumbs.redditmedia.com/m2l6DYE1-gSVgpFk.jpg ", "subreddit_id"=>"t5_2qh0u", "edited"=>false, "link_flair_css_class"=>nil, "author_flair_css_class"=>nil, "downs"=>10684, "saved"=>false, "is_self"=>false, "permalink"=>"/r/pics/comments/1dtlho/it_almost_looks_like_theyre_holding_up_a/", "name"=>"t3_1dtlho", "created"=>1367907910.0, "url"=>" http://i.imgur.com/M9BVP7W.jpg ", "author_flair_text"=>nil, "author"=>"kosen13", "created_utc"=>1367879110.0, "ups"=>14550, "num_comments"=>308, "num_reports"=>nil, "distinguished"=>nil}},
하지만 지금은 접근 할 필요가 그래서 기본적으로이 내가 그것을 액세스하려고하는 방법이다
{"kind"=>"Listing", "data"=>{"modhash"=>"5g8l2yr5ld67bcab9972a4fbf072381e422fea31c6ebf45cb5", "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"=>"1dtlho", "clicked"=>false, "title"=>"It almost looks like they're holding up a photograph", "media"=>nil, "score"=>3866, "approved_by"=>nil, "over_18"=>false, "hidden"=>false, "thumbnail"=>" http://f.thumbs.redditmedia.com/m2l6DYE1-gSVgpFk.jpg ", "subreddit_id"=>"t5_2qh0u", "edited"=>false, "link_flair_css_class"=>nil, "author_flair_css_class"=>nil, "downs"=>10684, "saved"=>false, "is_self"=>false, "permalink"=>"/r/pics/comments/1dtlho/it_almost_looks_like_theyre_holding_up_a/", "name"=>"t3_1dtlho", "created"=>1367907910.0, "url"=>" http://i.imgur.com/M9BVP7W.jpg ", "author_flair_text"=>nil, "author"=>"kosen13", "created_utc"=>1367879110.0, "ups"=>14550, "num_comments"=>308, "num_reports"=>nil, "distinguished"=>nil}},
: 그래서 여기에 어떤 방법 인쇄입니다 도메인 및 인쇄 제목 그래서이 같은 것을 시도 :
@reddit.get_listing().fetch('data',{}).fetch('children',{}).fetch('data', {}).each do |child|
puts child['title']
end
하지만이 오류가 발생합니다 : :in 'fetch': can't convert String into Integer
해시의 마지막 부분을 얻는 방법에 대한 아이디어가 있으십니까?
나는 당신의 질문을 이미 보았습니다 만, 어쨌든 팁이 있습니다. 모든 fetch 문을 함께 묶어 여러 문으로 나누십시오. 그렇게하면 실패 할 경우 오류 메시지가 실제로 오류의 원인이되는 행을 가리 킵니다. (또한 코드를 더 읽기 쉽게 만듭니다.) –