Tengo un objeto con una CookieJar que quiero encurtir.Cómo guardar un CookieJar?
Sin embargo, como todos ustedes probablemente saben, los choques de encurtidos en objetos que contienen objetos de bloqueo. Y por alguna horrible razón, un CookieJar tiene un objeto de bloqueo.
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
¿Cómo persisto esto?
La única solución que se me ocurre es usar FileCookieJar.save y FileCookieJar.load en un objeto stringIO. Pero hay una manera mejor?
¡Guau! La pregunta parece una pregunta para trabajar en la cocina. Me sorprenden los nombres utilizados para las herramientas :) – shahkalpesh
¿Obtuviste una buena solución? Si es así, por favor publíquelo. –
@Paul Las soluciones de Alex y Anurag funcionan. Si bien la solución de Anurag es hackosa y más rápida, la solución de Alex es más general y más lenta, por lo que dejaré en manos de la comunidad decidir qué es mejor. – Unknown