【发布时间】:2009-06-21 04:46:07
【问题描述】:
我有一个要腌制的带有 CookieJar 的对象。
但是,大家可能都知道,pickle 阻塞了包含锁定对象的对象。由于某些可怕的原因,CookieJar 有一个锁定对象。
from cPickle import dumps
from cookielib import CookieJar
class Person(object):
def __init__(self, name):
self.name = name
self.cookies = CookieJar()
bob = Person("bob")
dumps(bob)
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# cPickle.UnpickleableError: Cannot pickle <type 'thread.lock'> objects
我该如何坚持这个?
我能想到的唯一解决方案是将 FileCookieJar.save 和 FileCookieJar.load 用于 stringIO 对象。但是有没有更好的方法?
【问题讨论】:
-
哇!!这个问题听起来像是在厨房工作的问题。我很惊讶这些工具使用的名称:)
-
你找到好的解决方案了吗?如果有,请发帖。
-
@Paul Alex 和 Anurag 的解决方案都有效。虽然 Anurag 的解决方案比较老套且速度更快,但 Alex 的解决方案更通用且速度较慢,因此我将由社区来决定哪个更好。
-
乍一看还以为是个笑话问题
标签: python persistence pickle cookiejar cookielib