ピクルしたい 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 オブジェクトに使用することです。しかし、より良い方法はありますか?