[pyar] duda con pickle

Miguel Barraza correo en miguelbarraza.com.ar
Lun Jun 18 17:27:37 -03 2018


Buenas, estoy queriendo persistir el mapa de un juego que estoy 
desarrollando, y para eso estoy usando pickle, pero estoy teniendo 
algunos problemas que no estoy pudiendo resolver. Por lo que leo pickle 
puede serializar cualquier tipo de objetos a un archivo, pero al 
intentarlo me lanza este error:
>
> pickle.dump(objeto, arch, 2)
> AttributeError: Can't pickle local object 
> 'CDLL.__init__.<locals>._FuncPtr'
>
> si pruebo con un objeto nativo de python: lista, diccionarios... 
> funciona bien, pero cuando intento pasarle el objeto mapa lanza ese 
> error. y ya no se por donde buscarle la vuelta.
>
> el metodo que estoy ejecutando para guardar es el siguiente:
>
> import pickle
>   def guardar(self, objeto, ruta):
>     arch = open(ruta, "wb")
>     pickle.dump(objeto, arch, 2)
>     arch.close()
>
> estoy probando en python 3.7 de 32 bits en windows 7 de 64 bits.
> ¿alguien se le ocurre algún posible problema?. ¿pickle serializa 
> cualquier tipo de objetos?. ¿debo importar la clase del objeto en 
> donde tengo los metodos de persistencia?.
>
> el objeto que intento persistir es un mapa, que contiene una lista de 
> areas, cada area tiene sus tiles (celdas) y items (objetos que el 
> jugador puede ir agarrando). No debería tener drama con punteros 
> circulares pickle.
>
> para probar que funciona bien pickle probé con esto y funcionó 
> correctamente:
> import pickle
> archivo = "test.dat"
> objeto = {"nomre":"pepe", "edad":30}
> arch = open(archivo, "wb")
> pickle.dump(objeto, arch, 2)
> arch.close()
> print("okey")
>
> arch = open(archivo, "rb")
> obj=pickle.load(arch)
> arch.close()
> print(obj)
>
> Si a alguien se le ocurre algun tipo de problema posible, agradeceré 
> cualquier orientación.
> Gracias.
>
> atte, Miguel



Más información sobre la lista de distribución pyar