尝试在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来说,这仍然是一个悬而未决的问题。