Mam obiekt z CookieJar, który chcę pickle.Jak zalać CookieJar?
Jednak, jak wszyscy zapewne wiecie, dławiki pikle na obiektach zawierających obiekty blokujące. I z jakiegoś okropnego powodu CookieJar ma obiekt blokady.
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
Jak mogę to utrzymać?
Jedynym rozwiązaniem, które mogę wymyślić jest użycie FileCookieJar.save i FileCookieJar.load do obiektu stringIO. Ale czy istnieje lepszy sposób?
Wow! Pytanie brzmi jak pytanie do pracy w kuchni. Jestem zdumiony nazwami używanymi do narzędzi :) – shahkalpesh
Czy otrzymałeś dobre rozwiązanie? Jeśli tak, opublikuj. –
@Paul działa zarówno rozwiązanie Alexa, jak i Anuraga. Podczas gdy rozwiązanie Anuraga jest hackowe i szybsze, rozwiązanie Alexa jest bardziej ogólne i wolniejsze, więc pozostawię to społeczności, aby zdecydować, która jest lepsza. – Unknown