2017-08-26 141 views
0

我试图在while - try - except循环中捕获TweepError异常但不成功。当发生TweepError/RateLimitError时,以下代码保持停止运行。无法捕捉TweepError异常

import tweepy 
    import time 
    name_set = ('name1','name2','name3') 
    result = [] 
    for screen_name in name_set: 
     while True: 
      profile = api.get_user(screen_name = screen_name) 
      try: 
       print('collecting user %s'%screen_name) 
       result.append(profile) 
       break 
      except tweepy.RateLimitError: 
       print('sleep 15 minutes') 
       sleep(900) 
       continue 
      except tweepy.TweepError as e: 
       print(e) 
       print('Account %s'%screen_name) 
       break 
      else: 
       print('Account %s'%screen_name) 
       break 

TweepError

TweepError: [{'message': 'User not found.', 'code': 50}]

回答

0

你应该把一个API调用语句中try块捕获一个例外:

try: 
    profile = api.get_user(screen_name = screen_name) 
    print('collecting user %s'%screen_name) 
    ... 
+0

谢谢!例外情况已被成功捕获。 –

+0

不客气。享受编码! – shuuji3