【问题标题】:Object array is not picklable对象数组不可腌制
【发布时间】:2017-10-08 12:28:13
【问题描述】:

我在 python 中创建了一个类,如下所示:

class myClass():
    _fields_ = [1, 2]

其中 field_1 和 field_2 应该是整数。

然后我创建了一个数组,其元素属于 myClass 类,如下所示:

array = [ myClass() for i in range(5)]

当我想在变量检查器中检查 array 元素的值时,它给了我以下消息:

"Spyder was unable to retrieve the value of this variable from the console." 
"The error message was: Object array is not picklable"

我的问题是:如何检查数组元素的值?

【问题讨论】:

  • 为什么标题中有“graph”,问题中有“array”?这两个词的意思完全不同。
  • 如果您使用 python 2 扩展 class myClass(object) 可能就足够了。 (语法提示:类名以大写字母开头)。
  • @stovfl Spyder 版本是 2.3.7
  • @ImanolLuengo 我做了你建议的编辑,但仍然无法检查变量检查器中的数组。

标签: python arrays class pickle spyder


【解决方案1】:

查看以下 Spyder 相关网站:

Downloads, bug reports and feature requests
Discussions


已验证,pickle 可以处理问题中给出的object array
以下工作正常

pick_array = pickle.dumps(array)
unpick_array = pickle.loads(pick_array)

用 Python:3.4.2 测试


要验证您的 Spyder 是否能够显示array,请检查以下内容:

array = [ i for i in range(5)]

尝试使用 Inspector 显示变量 array

如果您能够查看变量,这是您的 Spyder 版本处理对象数组的限制。

【讨论】:

  • 实际上我已经尝试过这个解决方案并且它有效。根据您所说,这是我的 Spyder 处理对象的限制。有什么解决这个问题的建议吗?
猜你喜欢
  • 1970-01-01
  • 2011-04-05
  • 1970-01-01
  • 1970-01-01
  • 2016-03-27
  • 2018-10-30
  • 2022-07-16
  • 1970-01-01
相关资源
最近更新 更多