我有一个带有CookieJar的对象需要进行pickle。
然而,正如你们可能知道的那样,pickle会在包含锁对象的对象上出现问题。而且出于某种可怕的原因,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对象中。但是否有更好的方法?