【发布时间】:2013-12-18 03:29:46
【问题描述】:
我正在为一个正在进行的项目学习 Twitter 搜索 API。我可以连接并收到“200”响应。以下代码:
require 'rubygems'
require 'oauth'
require 'json'
=begin
__code for oauth and creating response__
=end
def print_results(tweets)
tweets.each do |tweet|
puts tweet
end
end
if response.code == '200' then
tweets = JSON.parse(response.body)
print_results(tweets)
end
将此结果打印到屏幕上:
statuses
{"metadata"=>{"result_type"=>"recent", "iso_language_code"=>"es"}, "created_at"=>"Mon Dec 02 11:10:53 +0000 2013", "id"=>407466896939044864, "id_str"=>"407466896939044864", "text"=>"Y \"Thérèse\" me recordó sobremanera a \"Madame Bovary\". A mi parecer ambas igual de insulsas.", "source"=>"<a href=\"http://twitter.com/download/android\" rel=\"nofollow\">Twitter for Android</a>", "truncated"=>false, "in_reply_to_status_id"=>nil, "in_reply_to_status_id_str"=>nil, "in_reply_to_user_id"=>nil, "in_reply_to_user_id_str"=>nil, "in_reply_to_screen_name"=>nil, "user"=>{"id"=>159480381, "id_str"=>"159480381", "name"=>"our last autumn", "screen_name"=>"RoxyVarlow", "location"=>"Valencia", "description"=>"Perdóname por lo que pueda hacer cuando no te recuerde.", "url"=>"http://t.co/AjyasSdTXb", ......
但是当我尝试使用 JSON 解析它并提取 twit 的文本时,可以使用:
def print_results(tweets)
tweets.each do |tweet|
puts tweet['statuses'][0]['text']
end
end
或与:
puts tweet['text']
我收到一个错误:
rb:17:in `[]': no implicit conversion of String into Integer (TypeError)
我做错了什么?我应该如何从响应中提取推文的文本?
【问题讨论】:
-
我们需要一个原始 JSON 样本。否则,很难判断您的代码是如何错误处理结果的。
标签: ruby json parsing twitter typeerror