所以这个有点棘手。
我有一个如下所示的属性:
[22] pry(main)> n.media.meta_info[:response][:outputs]
=> [{"id"=>486,
"url"=>"http://some-video.com/by-fire.mp4",
"label"=>"webmp4",
"state"=>"finished",
"format"=>"mpeg4",
"type"=>"standard",
"frame_rate"=>30.06,
{"id"=>488848287,
"url"=>"http://some-video.com/by-fire.webm",
"label"=>"webwebm",
"state"=>"finished",
"format"=>"webm",
"type"=>"standard",
"frame_rate"=>30.06,
{"id"=>488848288,
"url"=>"http://some-video.com/by-fire.ogv",
"label"=>"webogv",
"state"=>"finished",
"format"=>"ogg",
"type"=>"standard",
"frame_rate"=>30.059,
{"id"=>488848289,
"url"=>
"https://zencoder-temp-storage-us-east-1.s3.amazonaws.com/",
"label"=>nil,
"state"=>"finished",
"format"=>"mpeg4",
"type"=>"standard",
"frame_rate"=>30.06,
"thumbnails"=>
[{"label"=>nil,
"images"=>
[{"dimensions"=>"56x100",
"file_size_bytes"=>15142,
"format"=>"PNG",
"url"=>"https://some-video.s3.amazonaws.com/uploads/video/video_file/id/by-fire.png"}]}],
"md5_checksum"=>nil}]
我正在尝试访问thumbnails
信息,特别是缩略图的网址。
我无法弄清楚如何到达那里。
当我尝试使用thumbnails
的嵌套哈希键时,它不起作用:
[23] pry(main)> n.media.meta_info[:response][:outputs][:thumbnails]
TypeError: no implicit conversion of Symbol into Integer
from (pry):22:in `[]'
思想?
答案 0 :(得分:3)
输出开头的[{
表示返回了一个数组。首先需要在数组中找到包含thumbnails
键的元素:
outputs = n.media.meta_info[:response][:outputs]
output_with_thumbnail = outputs.find { |elem| elem.keys.include?('thumbnails') }
然后继续这样:
output_with_thumbnail['thumbnails']
答案 1 :(得分:2)
如果您只是想找到缩略图,而不关心其余的输出,可以像#find
一样使用{/ p>}:
thumbnails = n.media.meta_info[:response][:outputs].find {|it| it[:thumbnails] }[:thumbnails]
答案 2 :(得分:1)
你有一系列哈希,thumbnails
在第三个:
n.media.meta_info[:response][:outputs][3][:thumbnails]
答案 3 :(得分:1)
看起来像是
outputs = n.media.meta_info[:response][:outputs]
是哈希的Array
。所以,你需要首先迭代它们:
outputs.each do |output|
# deal with each output here
end
您可以像这样检查:thumbnails
:
if (thumbnails = output[:thumbnails])
# we've got thumbnails, deal with it here
end