2017-08-26 191 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