调用pickle会导致AttributeError on load()和dump(),即使pickle已导入

2024-05-01 22:02:33 发布

您现在位置:Python中文网/ 问答频道 /正文

这应该非常简单:我过去经常使用pickle。这次怎么了

import pickle

with open('data/cifar-10-batches-py/data_batch_1','rb') as f:
    dat = pickle.load(f)

AttributeError: 'function' object has no attribute 'load'

以下操作也会失败(如果load被注释掉)

with open ('data/cifar-10-batches-py/small_batch','wb') as f:
    pickle.dump(images[0:100],f, protocol=pickle.HIGHEST_PROTOCOL)

AttributeError: 'function' object has no attribute 'dump'

所以看起来pickle没有被正确导入

这是在python 2.7.3


Tags: nopydataobjectaswithbatchload
1条回答
网友
1楼 · 发布于 2024-05-01 22:02:33

pickle被以下内容所掩盖(我没有将其包含在OP中,因为我不知道它是相关的

from cifar import *

是的

# pickle object
# obj: object to pickle
# file_path: file path to store object at in binary cpython blob
def pickle(obj, file_path):
    with open(file_path, "wb") as fo:
        cPickle.dump(obj, fo)

值得怀疑的是,cifar以这种方式创建了一个名为pickle的方法。。所以在未来我需要更加小心

 from some_library import *

相关问题 更多 >