4

次のような 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 を漬けることはできますか?

4

3 に答える 3

3

尋ねられた質問への答えは「いいえ」です。ジャー自体はピクルスにできません。

ただし、jar に含まれるCookie は次のとおりです。

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 に答える