可以腌制一个cookiejar对象吗?

时间:2013-08-11 07:29:32

标签: python pickle cookiejar

我尝试像这样挑选一个CookieJar对象:

import cookielib
import pickle

dumpFile = open('cookie.dump','w')
cj = cookielib.CookieJar()
pickle.dump(cj, dumpFile)

它引发了以下异常:

raise TypeError, "can't pickle %s objects" % base.__name__
TypeError: can't pickle lock objects

CookieJar可以被腌制吗?

3 个答案:

答案 0 :(得分:2)

问题的答案是“不”:罐子本身不是腌制的。

但是, jar 中包含的

pickle.dump([c for c in cj], dumpFile)
例如,

会做的伎俩。 (然后你可以加载结果并将cookie列表插入到一个新的jar中。你可能想要检查它们的到期时间等等。根据你进行酸洗的时间,你可能甚至想要在转储之前检查。 )

答案 1 :(得分:1)

答案是"是",但仅当您使用比pickle更好的序列化程序时。

>>> import cookielib
>>> import dill
>>> 
>>> cj = cookielib.CookieJar()
>>> _cj = dill.dumps(cj)
>>> cj_ = dill.loads(_cj)
>>> cj_
<CookieJar[]>

答案 2 :(得分:0)

使用MozillaCookieJarLWPCookieJar之类的FileCookieJar实现及其它们的save()方法可能会更好?