4

I tried pickling a CookieJar object like this:

import cookielib
import pickle

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

It raised the following exception:

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

Can a CookieJar be pickled?

4

3 回答 3

3

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

然而,罐子里的饼干

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

例如,会成功的。(然后,您可以加载结果并将 cookie 列表插入到一个新 jar 中。不过,您可能需要先检查它们是否过期等。根据您进行酸洗的时间,您甚至可能希望在倾倒之前检查它们。 )

于 2013-08-11T07:40:56.910 回答
2

答案是“是”,但前提是您使用比pickle.

>>> import cookielib
>>> import dill
>>> 
>>> cj = cookielib.CookieJar()
>>> _cj = dill.dumps(cj)
>>> cj_ = dill.loads(_cj)
>>> cj_
<CookieJar[]>
于 2015-07-28T01:42:10.337 回答
0

FileCookieJar使用likeMozillaCookieJar或的实现LWPCookieJar以及它们的save()方法会更好地为您服务吗?

于 2019-10-02T18:19:53.483 回答