1

我可以使用 python Json 库从这个地址中提取信息

http://search.twitter.com/search.json?q=%23damn&result_type=recent&rpp=1&filter:retweets

并且大部分时间使用

j =json.loads(urllib.urlopen('http://search.twitter.com/search.json?q=%23damn&result_type=recent&rpp=1&filter:retweets').read())

text = j['results'][0]['text']
id = j['results'][0]['id']

我可以从结果中提取文本和 ID 并打印它们。我每 15 秒请求一次 JSON,所以我不会被 twitter 的限制阻止。

我经常遇到这种情况。

   {u'completed_in': 0.021,
 u'max_id': 313306991827238912L,
 u'max_id_str': u'313306991827238912',
 u'next_page': u'?page=2&max_id=313306991827238912&q=%23damn&rpp=1&result_type=recent',
 u'page': 1,
 u'query': u'%23damn',
 u'refresh_url': u'?since_id=313306991827238912&q=%23damn&result_type=recent',
 u'results': [],
 u'results_per_page': 1,
 u'since_id': 0,
 u'since_id_str': u'0'}

结果字段中似乎没有包含任何内容。这会导致以下错误。

  Traceback (most recent call last):
  File "C:\Users\Home\Desktop\test.py", line 32, in <module>
    text = j['results'][0]['text']
IndexError: list index out of range

这反过来又关闭了 Python 命令行。我考虑过放置一个“while”循环以确保在继续之前结果字段已满,但我觉得这可能会发送到许多请求并将脚本锁定在 twitter 之外。

你遇到过这个问题吗?你知道如何克服它吗?

4

1 回答 1

0

我会在调用结果或尝试之前抛出一个 if 语句,我在使用 Web API 的时候注意到结果并不总是可靠的,最好是为了安全起见

于 2013-03-17T16:13:26.230 回答