for _ in range(10):
try:
next_results = search_results['search_metadata']['next_results']
except KeyError or 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
q = "CrossFit"
results = twitter_search(twitter_api, q, max_results=10)
print (json.dumps(statuses[0], indent=1))
答案 0 :(得分:1)
发布的代码不是您运行的代码,因为search_results
未定义,执行将停在那里。根据您发布的内容,我的猜测是max_results
在执行len(statuses) > max_results
时未定义。在原始代码中,循环必须在函数定义中。只有在任何赋值之前使用函数中的名称(因为它是赋值目标而定义为本地名称)时,才会出现错误消息。例如:
>>> def f():
if True: return y
else: y = 1
>>> f()
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
f()
File "<pyshell#10>", line 2, in f
if True: return y
UnboundLocalError: local variable 'y' referenced before assignment
请阅读此SO mcve帮助页面并采取相应行动。你发布的内容既不完整又过于完整(if语句之后的所有内容都是多余的)。