[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