我正在尝试挑选和取消我正在使用的数据类的实例,它在Unix上运行正常:
import dataclass as dc
data = dc.DataClass()
f = open(filename, 'wb')
pickle.dump(data, f)
f.close()
f = open(filename, 'rb')
unpickled_data = pickle.load(f)
然后我可以再次使用unpicked_data
。但是当我在mac OS X上尝试这些相同的步骤时,我收到一个错误:
f = open(filename, 'rb')
unpickled_data = pickle.load(f)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
pickle.pyc in load(file)
1376
1377 def load(file):
-> 1378 return Unpickler(file).load()
1379
1380 def loads(str):
pickle.pyc in load(self)
856 while 1:
857 key = read(1)
--> 858 dispatch[key](self)
859 except _Stop, stopinst:
860 return stopinst.value
pickle.pyc in load_build(self)
1215 setstate = getattr(inst, "__setstate__", None)
1216 if setstate:
-> 1217 setstate(state)
1218 return
1219 slotstate = None
ValueError: non-string names in Numpy dtype unpickling
我已经尝试过腌制和取消更简单的对象,比如OS X上的字典,它似乎工作正常。但由于某种原因,不喜欢这个数据类。任何帮助是极大的赞赏!感谢。