展开从twitter api返回的对象

时间:2014-07-14 19:52:27

标签: ruby twitter

从Twitter api读取一些数据时,我将数据插入到文件中

 results.each do |f|
        running_count += 1

        myfile.puts "#{f.user_mentions}"
        ...

结果(下面的2个样本行)在文件

中如下所示
[#<Twitter::Entity::UserMention:0x007fda754035803485 @attrs={:screen_name=>"mr_blah_blah", :name=>"mr blah blah", :id=>2142450461, :id_str=>"2141354324324", :indices=>[3, 15]}>]
[#<Twitter::Entity::UserMention:0x007f490580928 @attrs={:screen_name=>"andrew_jackson", :name=>"Andy Jackson", :id=>1607sdfds, :id_str=>"16345435", :indices=>[3, 14]}>]

由于我实际感兴趣的唯一信息是:screen_name,我想知道是否有办法只能将屏幕名称插入文件中。由于每一行都在数组括号中,然后我在@attrs内寻找屏幕名称,我这样做了

myfile.puts "#{f.user_mentions[0]@attrs{"screen_name"}}"

这不起作用,我没想到,因为我不确定这是否是技术阵列等等。你能建议怎么做吗?

2 个答案:

答案 0 :(得分:0)

假设结果是Twitter :: Entity :: UserMention

的数组
results.each do |r|
  myfile.puts r.screen_name
end

答案 1 :(得分:0)

您需要访问Twitter UserMention对象中的@attrs实例变量。如果你想根据你当前的输出放置第一个对象的屏幕名称,我会写

myfile.puts "#{f.user_mentions[0].attrs[:screen_name]"

此外,将代码放在返回结果的方式上将有助于快速得到明确的答案。干杯!