pickle y unpickle de todas las variables locales

Chema Cortes py en ch3m4.org
Jue Feb 5 02:46:58 CET 2009


El Thursday 05 February 2009 01:09:01 Jose Caballero escribió:
> >>> import pickle
> >>> x=6
> >>> y=8
> >>> d = locals()
> >>> serialized = pickle.dumps(d)
>
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
>   File
> "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/pic
>kle.py", line 1366, in dumps
>....
>>   File 
> "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/cop
>y_reg.py", line 69, in _reduce_ex
> TypeError: can't pickle module objects

Obviamente, no todo es "pickleable":

http://docs.python.org/library/pickle.html#what-can-be-pickled-and-unpickled


Tendrías que realizar un barrido del diccionario de variables, comprobando el 
tipo (con 'isinstance'), para distinguir las variables que se puedan pasar al 
pickle.

De todas formas, dudo que ésta sea una buena idea. Debes controlar mejor los 
objetos que a serializar si no quieres acabar teniendo un entorno 
completamente corrompido e inestable.
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.python.org/pipermail/python-es/attachments/20090205/f37fb4d8/attachment.pgp>
------------ próxima parte ------------
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes


Más información sobre la lista de distribución Python-es