2016-04-04 16 views
1

5分ごとに次のコードを実行するループがあります。このコードは実際にtimesperiesのtimeseriesをダウンロードします。pythonリストのインデックスが範囲外になりました

Traceback (most recent call last): 
    File "./regression_12_5min.py", line 284, in <module> 
    last_price_long = listone[(len(listone)-1)][4] 
IndexError: list index out of range 

私は推測するが、それがわからない...この問題が発生したことをその時に私はすべてのデータを受信しないいずれかを受信しないので: は時々、多分週に一度、私は次のエラーを取得しますブローカーから。

これはコードです:

 try: 
      r = requests.get(myurl, params=price_long) 

     except: 
      pprint("Si e' verificato un errore") 
     else: 
       print "cwlong5" 
      pprint(r.status_code) 
      print(r.headers['content-type']) 
      pprint(r.url) 
       listone = crea_lista(r) 

     last_price_long = listone[(len(listone)-1)][4] 
     print " ultimo prezzo long" + " " + str(last_price_long) 

は正しいエラーの原因についての私の考えですか? このエラーを回避する方法はありますか?問題が発生したエラーブロックというループであるが、代わりにループが他の5分

した後、再度起動自体をblokingのおかげ

答えて

3

まず第一に、あなたはあなたのresponse.status_codeいることを確認する必要がある場合、私はちょうどOKだろうあなたが成功した要求を確実に得るためには20Xに等しいです。第2に、インデックスエラーを避けるために値を取得する前に、リストが空でないか常にチェックする必要があります。これで、あなたはいつもこのようなインデックスエラーを捉えることができると言いました

try: 
    last_price_long = listone[-1][4] 
except IndexError: 
    last_price_long = None 
関連する問題