提问人:roulette01 提问时间:10/23/2023 最后编辑:Brian61354270roulette01 更新时间:10/23/2023 访问量:36
如何在复杂物体内定位不能酸洗的物体
How to locate object that cannot be pickled inside complex object
问:
与我之前的问题有关:如何更改 pickle 文件中的 import 语句?
我正在尝试更改序列化文件中的 import 语句。在尝试重新序列化时,它最终导致了一些意想不到的问题,特别是:
Traceback (most recent call last):
File "test.py", line 9, in <module>
CP.dump(data, file)
File "/path/to/lib/python2.7/copy_reg.py", line 70, in _reduce_ex
raise TypeError, "can't pickle %s objects" % base.__name__
TypeError: can't pickle Cursor objects
(是的,不幸的是,我在这里仅限于 py2)
序列化对象是一个类实例。我删除了我认为导致此错误的光标,但在删除它后,我仍然观察到此错误,因此这告诉我其他地方还有另一个光标。问题是这个类实例非常大,并且由许多其他递归类实例组成。我不想深入研究所有这些来找到光标,所以我想知道是否有一种快速的方法可以确定光标来自哪里?
另外,它没有说它是什么类型的 Cursor,但我认为它可能是一个 sqlite3 游标。
答: 暂无答案
上一个:光标未在预期位置协调
评论
copy_reg.py
print self # new
<sqlite3.Cursor object at 0x7f02acd473b0>
_reduce_ex
.py