[pyar] Serializando una lista de objetos con pickle problema en la impresión del archivo serializado

XLJ xlj xlj707 en gmail.com
Mie Mar 9 19:01:29 ART 2016


# en este modulo tendre la estanteria de libros (listas)
from clases.libro import Libro
import pickle 
# titulo, anio, autor, paginas, editorial, codigoLibro



# llenado de la estanteria
lib1 = Libro("Alicia en el pais de las maravillas", 1999, "lucson marz", 200, "MCgraw Hill", "AHSBCr31")
lib2 = Libro("Peter Pan", 1985, "J. M. Barrie", 206, "A Millennium Fulcrum Edition", "HALSDF232")
lib3 = Libro("Oliver tweest", 1855, "Charles Dikenson", 120, "Porrua", "ASDFAS235")
lib4 = Libro("La Odisea", 1530, "Homero", 950, "Porrua", "ASDFASDF323")
lib5 = Libro("La iliada ", 1532, "Homero", 1300, "Porrua", "ADSFASD9032")
lib6 = Libro("La hojarasca", 1960, "Gabriel Garcia Marquez", 180, "Editorial Latina", "ADF3235ASD")

libros = [lib1, lib2, lib3, lib4, lib5, lib6]  # 6 libros

# vaciado de la lista
def listarLibros():
    for object in libros:
    	print(object, "\n", object.getCodigoLibro() ) 
    menu()

def eliminarTitulo(): 
	print("eliminar titulo")
	menu() 
def agregarTitulo(): 
	#para agregar un titulo primero creamos una nueva instancia de Libro 
	#para esto pedimos cada uno de los atributos requeridos 
	titulo = input("cual es el titulo: ")
	anio = input("ingresa el anio: ")
	autor = input("ingresa el autor: ")
	paginas = input("cuantas pagias tiene el libro? ")
	editorial = input("de que editorial es? ")
	claveLibro = input("ingresa un codigo alfanumerico para el libro: ")


	lib7 = Libro(titulo, anio, autor, paginas, editorial, claveLibro)
	libros.append(lib7)
	#ahora convertimos el objeto python en JSON 
	
	
	print("libro agregado con exito!! ")

	menu()

def guardarCambiosEnArchivoPickle(): 

	print("realizando serializacion pickle.......")
	with open('libros.pickle','wb') as f: 
		pickle.dump(libros, f,protocolo=0,import=True*)
	print("cambios guardados con exito !")

	menu()

def leerArchivoPickle(): 
	with open('libros.pickle','rb') as f: 
		libros = pickle.load(f,import=True*,encoding="ASCII"*,error="strict"*)
		print(libros) 
		print("\n")

	menu()

def salir(): 
	print("salir.....")


def menu(): 
	opcion = input("Operaciones: \n\t 1) listar material \n\t 2) eliminar Titulo \n\t 3) agregar titulo \n\t 4) guardar Cambios En Archivo Pickle \n\t 5) leer archivo pickle \n\t 6) salir ")#todos los metodos manipularan archivos 
	#emulamos switch 
	operaciones = {'1':listarLibros, '2':eliminarTitulo, '3':agregarTitulo, '4':guardarCambiosEnArchivoPickle, '5':leerArchivoPickle, '6':salir}

	operaciones[opcion]()




    
menu()

EL PROBLEMA ES QUE DESPUES DE SERIALIZAR EL CONTENIDO QUE LEEO CON LA FUNCION leerArchivoPickle()  es el siguiente: 

[<clases.libro.Libro object at 0x10118a320>, <clases.libro.Libro object at 0x10118a358>, <clases.libro.Libro object at 0x10118a1d0>, <clases.libro.Libro object at 0x10118a240>, <clases.libro.Libro object at 0x10118a2b0>, <clases.libro.Libro object at 0x101194c88>]


ES DECIR NO APARECE EN UN FORMATO LEGIBLE PARA EL SER HUMANO CADA UNO DE LOS OBJETOS 
ALGUIEN ME PUEDE DECIR A QUE SE DEBE ESTO Y COMO LO PUEDO CORREGIR? DE ANTEMANO GRACIAS POR SU APOYO Y COMPRESION 
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20160309/dc01c025/attachment-0001.html>


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