Python read pickle protocol 4 error: STACK_GLOBAL requires str
Python read pickle protocol 4 error: STACK_GLOBAL requires str
在Python3.7.5、ubuntu18.04中,pickle read报错,
pickle version 4
示例代码:
import pickle as pkl
file = open("sample.pkl", "rb")
data = pkl.load(file)
错误:
UnpicklingError Traceback (most recent call
last)
in
----> 1 data = pickle.load(file)
UnpicklingError: STACK_GLOBAL requires str
从同一个文件对象读取解决了问题。
使用pandas读取也有同样的问题
原来是已知问题。有问题页面
github
我遇到了这个问题,只是在文件名末尾添加了 pckl
。
我也遇到了这个错误,结果是我用 pickle 打开了一个 numpy 文件。 ;)
我的问题是我试图在不同的 python 环境中 pickle 和 un-pickle - 注意确保你的 pickle 版本匹配!
也许这将是某人解决此错误的方法。
我需要加载一个 numpy 数组:
torch.load(file)
当我加载数组时,出现了这个错误。所需要做的就是将数组变成张量。
例如:
result = torch.from_numpy(np.load(file))
在Python3.7.5、ubuntu18.04中,pickle read报错,
pickle version 4
示例代码:
import pickle as pkl
file = open("sample.pkl", "rb")
data = pkl.load(file)
错误:
UnpicklingError Traceback (most recent call last) in
----> 1 data = pickle.load(file) UnpicklingError: STACK_GLOBAL requires str
从同一个文件对象读取解决了问题。
使用pandas读取也有同样的问题
原来是已知问题。有问题页面 github
我遇到了这个问题,只是在文件名末尾添加了 pckl
。
我也遇到了这个错误,结果是我用 pickle 打开了一个 numpy 文件。 ;)
我的问题是我试图在不同的 python 环境中 pickle 和 un-pickle - 注意确保你的 pickle 版本匹配!
也许这将是某人解决此错误的方法。 我需要加载一个 numpy 数组:
torch.load(file)
当我加载数组时,出现了这个错误。所需要做的就是将数组变成张量。 例如:
result = torch.from_numpy(np.load(file))