簡體   English   中英

IndexError:打印len(list)> 0之后,列表索引超出范圍

[英]IndexError: list index out of range right after printing len(list) > 0

我從字面上看依次有這兩行代碼:

print(len(counter.ondas))
onda = counter.ondas[-1]

我在第一行打印了13條,它崩潰了,這使我向trace onda = counter.ondas[-1] onda onda = counter.ondas[-1]行的軌跡簿說IndexError: list index out of range right after printing len(list)

在崩潰之前,它可以工作數千次。 我不知道如何解決這個問題。

輸出為print(counter.ondas)

[Onda([<workers.mov.Mov object at 0x244EA050>], [Candle(4, 'GBP_JPY', Timestamp('2017-06-12 16:59:00'), 138.884, 138.897, 138.674, 138.76, 10957.0, True)]), Onda([<workers.mov.Mov object at 0x245073D0>], [Candle(4, 'GBP_JPY', Timestamp('2017-06-12 16:59:00'), 138.884, 138.897, 138.674, 138.76, 10957.0, True)...]

輸出為print(type(counter.ondas))

<class 'list'>

輸出為print(isinstance(counter.ondas, list))

True

完整錯誤回溯

    Traceback (most recent call last):
      File "C:\Users\joaoa\AppData\Local\Programs\Python\Python36-32\lib\multiprocessing\pool.py", line 119, in worker
        result = (True, func(*args, **kwds))
      File "C:\Users\joaoa\AppData\Local\Programs\Python\Python36-32\lib\multiprocessing\pool.py", line 44, in mapstar
        return list(map(*args))
      File "C:\Users\joaoa\PycharmProjects\aquitania\general_manager.py", line 88, in load_observer_manager
        observer_manager.update_load_run_data()
      File "C:\Users\joaoa\PycharmProjects\aquitania\observer\management\observer_manager.py", line 78, in update_load_run_data
        self.load_run_data()
      File "C:\Users\joaoa\PycharmProjects\aquitania\observer\management\observer_manager.py", line 91, in load_run_data
        self.feeder.exec_df(df[self.start_date:])
      File "C:\Users\joaoa\PycharmProjects\aquitania\data_source\feeder.py", line 429, in exec_df
        self.feed(candle)
      File "C:\Users\joaoa\PycharmProjects\aquitania\data_source\feeder.py", line 98, in feed
        self.make_candle(ts, candle, criteria_table)
      File "C:\Users\joaoa\PycharmProjects\aquitania\data_source\feeder.py", line 126, in make_candle
        self.set_values(ts, candle)
      File "C:\Users\joaoa\PycharmProjects\aquitania\data_source\feeder.py", line 310, in set_values
        ts_obs.feed_complete(self._candles[ts])
      File "C:\Users\joaoa\PycharmProjects\aquitania\observer\management\observer_loader.py", line 100, in feed_complete
        observer.update_last_candle(candle, store_candle)
      File "C:\Users\joaoa\PycharmProjects\aquitania\observer\abstract\observer_abc.py", line 93, in update_last_candle
        self.set_observe(self.update_method(candle))
      File "C:\Users\joaoa\PycharmProjects\aquitania\observer\ondas\ondas_inside.py", line 393, in update_method
        self.update_routine(counter_id=2, candle=candle)
      File "C:\Users\joaoa\PycharmProjects\aquitania\observer\ondas\ondas_inside.py", line 412, in update_routine
        onda = list(counter.ondas)[-1]
    IndexError: list index out of range
    """

    The above exception was the direct cause of the following exception:

    Traceback (most recent call last):
      File "C:/Users/joaoa/PycharmProjects/aquitania/general_manager.py", line 145, in <module>
        gm.run()
      File "C:/Users/joaoa/PycharmProjects/aquitania/general_manager.py", line 113, in run
        list_of_observer_managers = self.load_all_observer_managers()
      File "C:/Users/joaoa/PycharmProjects/aquitania/general_manager.py", line 60, in load_all_observer_managers
        observer = currency_pool.map(self.load_observer_manager, list_of_currencies)
      File "C:\Users\joaoa\AppData\Local\Programs\Python\Python36-32\lib\multiprocessing\pool.py", line 266, in map
        return self._map_async(func, iterable, mapstar, chunksize).get()
      File "C:\Users\joaoa\AppData\Local\Programs\Python\Python36-32\lib\multiprocessing\pool.py", line 644, in get
        raise self._value
    IndexError: list index out of range

我能夠找出問題所在。 該錯誤是在與正在打印的過程不同的單獨過程中引發的,並且由於某種原因,該錯誤僅在正在打印結果的過程被另一個不相關的錯誤中斷后才發生。

行為很奇怪,但是現在我可以解決這個問題。

在單個過程模式下進行調試有很大幫助。

謝謝您的幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM