Closed vivdx closed 11 years ago
Did you try debugging this at all? Here's what I tried...
import sys
import twitter
from twitter__login import login
q = "the"
count = 500
geocode = '31.055207,21.745055,10mi'
MAX_PAGES = 5
t = login()
search_results = t.search.tweets(q=q, geocode=geocode, count=count)
# See what you've got so far...
print >> sys.stderr, search_results
tweets = search_results['statuses']
assert len(tweets) > 0, "No need to continue. There were no tweets for this query"
for _ in range(MAX_PAGES-1):
next_results = search_results['search_metadata']['next_results']
kwargs = dict([ kv.split('=') for kv in next_results[1:].split("&") ]) # Create a dictionary from the query string params
search_results = twitter_api.search.tweets(**kwargs)
tweets += search_results['statuses']
if len(search_results['statuses']) == 0:
break
What I discovered (and think that is your problem) is that there just aren't any tweets from the query you are running, so the loop immediately has an error on it. The sys.stderr
will show you that much for sure, and the assert
statement is one way you could stop the program if that condition is true. Another would be to use conditional logic and do an exit
as a common example.
I'll defer to you on closing this ticket, but I think that's all that's happening. Close it if you can confirm and agree? Thank you!
thanks a lot for such a quick reply.
print >> sys.stderr, search_results
works and prints some results.
But still there is the same Error : KeyError : 'next_results'
I dont know why but there is some problem with for loop
It worked. You were right.
import sys import twitter from twitter_login import login
q = "xxxxx" count = 500 geocode = 'xx.055207,xx.745055,10mi' MAX_PAGES = 5
t = login()
search_results = t.search.tweets(q=q, geocode=geocode, count=count) tweets = search_results['statuses']
for _ in range(MAX_PAGES-1): next_results = search_results['search_metadata']['next_results'] kwargs = dict([ kv.split('=') for kv in next_results[1:].split("&") ]) # Create a dictionary from the query string params search_results = twitter_api.search.tweets(**kwargs) tweets += search_results['statuses'] if len(search_results['statuses']) == 0: break
import json print json.dumps(statuses[0:1], indent=1)
tweets = [ status['text'] for status in statuses ]
print tweets[0]
ERROR: next_results = search_results['search_metadata']['next_results'] KeyError: 'next_results'