Python中的tweet
最后一行返回一个错误,即Python中的tweet,python,search,twitter,tweets,Python,Search,Twitter,Tweets,最后一行返回一个错误,即'NoneType'对象没有属性\uuu getitem\uuu这里有两个问题: return语句位于for循环内,如果循环首先命中其中一个break语句,则可能无法到达该语句。如果到达,它将比您想要的更早返回,而不运行其余的循环迭代 您假设results将至少有一个元素(results[0])。如果结果为空列表,则索引器将导致此操作失败 解决方案: 将return语句移到for循环之外(dedent一级) 如果结果:,请在索引到它之前检查 问题是q没有趋势:S q='
'NoneType'对象没有属性\uuu getitem\uuu
这里有两个问题:
return
语句位于for循环内,如果循环首先命中其中一个break
语句,则可能无法到达该语句。如果到达,它将比您想要的更早返回,而不运行其余的循环迭代results
将至少有一个元素(results[0]
)。如果结果为空列表,则索引器将导致此操作失败return
语句移到for循环之外(dedent一级)
问题是q没有趋势:S
q='#vladimirala1'
计数=100
search\u results=twitter\u api.search.tweets(q=q,count=count)
statuses=搜索结果['statuses']
对于范围(5)内的uu:
打印“状态长度”,len(状态)
尝试:
下一个搜索结果=搜索结果['search\u metadata']['next\u results']
除KeyError外,e:#没有mas结果也没有mas数据
打破
kwargs=dict([kv.split('='))表示下一个_结果中的kv[1:].split('&'))
搜索结果=推特api.search.tweets(**kwargs)
状态+=搜索结果['statuses']
打印json.dumps(状态[0],缩进=1)
看起来像结果为无
。你做了什么来找出原因呢?我试着阅读更多关于错误的信息。有些人说结果不能被索引。我很困惑。例如,您没有打印结果来找出它是什么?提示:如果您将从循环中中断,将返回什么?这是我做的第一件事,它没有返回任何结果。
def twitter_search(twitter_api,q,max_results=200,**kw):
search_results = twitter_api.search.tweets(q=q,count=100,**kw)
statuses = search_results['statuses']
max_results=min(1000,max_results)
for _ in range(10):
try:
next_results = search_results['search_metadata']['next_results']
except KeyError, e:
break
kwargs = dict([ kv.split('=')
for kv in next_results[1:].split("&") ])
search_results = twitter_api.search.tweets(**kwargs)
statuses += search_results['statuses']
if len(statuses) > max_results:
break
return statuses
results = twitter_search(twitter_api,q,max_results=10)
print json.dumps(results[0], indent =1)