我正在保存一个python数据集,它包含一个类,在Linux机器上有引用的词典和类。该文件通常在Windows或Linux上加载,但在Mac上,如果使用' rb'加载,则会出现以下错误:改性剂:
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py", line 1378, in load
return Unpickler(file).load()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py", line 858, in load
dispatch[key](self)
KeyError: '\x00'
如果使用“rU”加载此错误改性剂:
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py", line 1378, in load
return Unpickler(file).load()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py", line 858, in load
dispatch[key](self)
KeyError: '\x06
尝试使用pickle,cPickle和dill进行保存和加载,所有这些都有类似的结果。
更新 我在linux中保存并加载mac大熊猫DataFrames时收到了这个确切的错误:
import pandas as pd
import numpy as np
pd.DataFrame(np.random.randn(100000,5)).to_pickle("1.dat")
尝试使用此代码打开1.dat im mac时出现错误:
pd.read_pickle("1.dat")
答案 0 :(得分:0)
问题解决了。
这是在mac中安装网络Linux驱动器后引起的,这导致在传输的每个大数据块的末尾插入一个空字符,从而导致错误。