1
我可以使用Python的JSON庫並從該地址Twitter搜索API,巨蟒和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之外。
您是否遇到過這個問題?你知道如何克服它嗎?
爲什麼不是簡單地做'如果j ['results']:'? – 2013-03-17 15:32:16
爲什麼不等一段時間,如果結果字段爲空?退房http://stackoverflow.com/questions/4152969/genrate-timer-in-python – 2013-03-17 15:34:39
我現在就試一試。有時需要一兩個小時纔會出現一個詭計結果。 – Hooperstu 2013-03-17 15:39:54