2010-06-12 55 views
1

我得到这个错误:Python Pickle:什么会导致堆栈索引超出范围错误?

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 

为什么会这样发生?

+0

对不起,我已经知道了。没关系。 – 2010-06-12 21:52:11

+2

如果问题是别人可能会让你自己发表答案并接受答案;如果不是,你应该删掉这个问题 – 2010-06-12 22:03:31

回答

0

答:我试图在Google App Engine模型的未初始化字段上调用pickle.loads()

1

“损坏的文件”是一般的解释;单个最可能的原因是您忘记打开文件(在Windows中)为'rb'(“读取二进制文件”),并且酸洗是使用二进制协议完成的(即,除了旧的慢速默认协议0,仅ascii,基本上只存在于传统用途,制作较大的文件,并有一些限制)。