无法在 spyder 中打开 .spydata:'Object arrays cannot be loaded when allow_pickle=False'



尝试在Spyder中导入.spydata文件时遇到问题。我使用Spyder在控制台中创建了一个.spydata文件,然后打开了一个新控制台(相同的环境和所有内容(并尝试导入该文件。然后Spyder抛出一个错误:

'Unable to load .../.spydata'The error message was:'Object arrays cannot be loaded when allow_pickle=False'

.spydata文件包含以下对象类型:List、Set、Array、Dictionary、int、tuple、DataFrame、timedelta、timestamp。

我成功地保存并导入了一个对象较少的.spydata文件(原始脚本运行时只有两个单元格(。

正如这个问题中所建议的,我尝试使用Numpy==1.16.1(以及pandas==1.1以解决兼容性问题(在新环境中打开该文件。但后来我收到了一条错误消息:

'Unable to load .../.spydata'The error message was:"Can't get attribute '_unpickle_block' on"

在这个问题中,@CarlosCordoba给出的最后一个错误的解决方案是:

(此处为Spyder维护人员(发生这种情况可能是因为您使用了两个不同版本的Pandas来保存/加载数据。

是的,这就是问题所在。我不得不将pandas降级到1.1版本。用户似乎能够解决使用相同panda版本保存和加载数据的问题。不是我,我收到了第一条错误消息。

Environment package versions:
Python   3.10.6
Anaconda 2.3.1
Spyder   5.3.2
Ipython  7.33.0
Numpy    1.23.3
Pandas   1.5.0

找到了!问题是单个numpy.ndarray在我的情况下,我只是将numpy.ndarray转换为list。其他类型的对象都没有抛出错误。.spydata文件有基本的Python结构、Pandas对象,甚至还有PuLP对象。对于Spyder来说,这仍然是一个悬而未决的问题。

相关内容

最新更新