Python Pickle: что может вызвать индекс стека из-за ошибки диапазона? - PullRequest
1 голос
/ 13 июня 2010

Я получаю эту ошибку:

  File "C:\Python26\lib\pickle.py", line 1374, in loads
    return Unpickler(file).load()
  File "C:\Python26\lib\pickle.py", line 858, in load
    dispatch[key](self)
  File "C:\Python26\lib\pickle.py", line 1075, in load_obj
    k = self.marker()
  File "C:\Python26\lib\pickle.py", line 874, in marker
    while stack[k] is not mark: k = k-1
IndexError: list index out of range

Почему это могло произойти?

Ответы [ 2 ]

1 голос
/ 13 июня 2010

«Поврежденный файл» - это общее объяснение;Наиболее вероятной причиной является то, что вы забыли открыть файл (в Windows) как 'rb' («чтение двоичного файла»), а выборка выполнялась с помощью двоичного протокола (т. е. любого протокола, кроме старого, медленного протокола по умолчанию 0, asciiтолько, который в основном существует только для устаревших целей, создает большие файлы и имеет несколько ограничений).

0 голосов
/ 13 июня 2010

Ответ. Я пытался вызвать pickle.loads() в неинициализированном поле модели Google App Engine.

...