Причина цикла заключается в том, что поток 'follow' возвращает все ответы последующему пользователю (а также ретвиты пользователя и от пользователя), поэтому вам необходимо исключить их, прежде чем переходить к строкам ответа.См. Твиттерскую документацию.
Например, если вы используете on_data()
вместо on_status()
, отметьте этот from_creator()
, прежде чем переходить к остальной функции on_status()
(обратите внимание, чтоon_status()
возвращает удаления и т. Д., Что приведет к ошибке в этой функции, поэтому обрабатывайте ее соответствующим образом):
def from_creator(status):
status = json.loads(status)
if "retweeted_status" in status:
return False
elif status["in_reply_to_status_id"] != None:
return False
elif status["in_reply_to_screen_name"] != None:
return False
elif status["in_reply_to_user_id"] != None:
return False
else:
# status is an origin Tweet by the followed user!
return True
При использовании on_status()
это будет:
def from_creator(status):
if hasattr(status, 'retweeted_status'):
return False
elif status.in_reply_to_status_id != None:
return False
elif status.in_reply_to_screen_name != None:
return False
elif status.in_reply_to_user_id != None:
return False
else:
# status is an origin Tweet by the followed user!
return True