Saltar al contenido principal

Cómo deserializar objetos de Python desde un archivo

Aquí tienes un tutorial paso a paso sobre cómo deserializar objetos de Python desde un archivo:

Paso 1: Comprende la Serialización y Deserialización La serialización es el proceso de convertir un objeto en un formato que se puede almacenar o transmitir, como un archivo o un flujo de red. La deserialización es el proceso inverso de convertir los datos serializados de nuevo en un objeto.

Paso 2: Elige una Biblioteca de Serialización Python proporciona varias bibliotecas para la serialización, como Pickle, JSON y YAML. En este tutorial, nos centraremos en la biblioteca Pickle, que es un módulo de serialización incorporado en Python.

Paso 3: Crea Objetos para Serializar Antes de poder deserializar objetos, necesitamos tener algunos objetos para serializar. Creemos una clase de ejemplo simple llamada Persona con atributos como nombre, edad y dirección.

class Persona:
def __init__(self, nombre, edad, direccion):
self.nombre = nombre
self.edad = edad
self.direccion = direccion

Paso 4: Serializa Objetos y Guárdalos en un Archivo Para serializar objetos, utilizaremos la función pickle.dump() de la biblioteca Pickle. Esta función toma dos argumentos: el objeto a serializar y un objeto de archivo para escribir los datos serializados.

import pickle

persona1 = Persona("Juan Pérez", 25, "Calle Principal 123")
persona2 = Persona("María López", 30, "Calle Elm 456")

# Serializa objetos y guárdalos en un archivo
with open("personas.pkl", "wb") as archivo:
pickle.dump(persona1, archivo)
pickle.dump(persona2, archivo)

En el código anterior, creamos dos objetos Persona y los guardamos en un archivo llamado "personas.pkl".

Paso 5: Deserializa Objetos desde un Archivo Para deserializar objetos, utilizaremos la función pickle.load() de la biblioteca Pickle. Esta función toma un objeto de archivo como argumento y devuelve el objeto deserializado.

# Deserializa objetos desde un archivo
with open("personas.pkl", "rb") as archivo:
persona_deserializada1 = pickle.load(archivo)
persona_deserializada2 = pickle.load(archivo)

# Accede e imprime los objetos deserializados
print(persona_deserializada1.nombre)
print(persona_deserializada2.edad)

En el código anterior, abrimos el archivo "personas.pkl" en modo de lectura y utilizamos pickle.load() para deserializar los objetos. Luego podemos acceder e imprimir los atributos de los objetos deserializados.

Paso 6: Maneja Excepciones Al deserializar objetos, es importante manejar las excepciones que puedan ocurrir. Por ejemplo, si no se encuentra el archivo o si el archivo contiene datos incompatibles.

try:
with open("personas.pkl", "rb") as archivo:
persona_deserializada1 = pickle.load(archivo)
persona_deserializada2 = pickle.load(archivo)
except FileNotFoundError:
print("¡Archivo no encontrado!")
except EOFError:
print("¡Fin de archivo alcanzado!")

En el código anterior, utilizamos un bloque try-except para manejar las excepciones FileNotFoundError y EOFError que pueden ocurrir durante la deserialización.

¡Eso es todo! Ahora sabes cómo deserializar objetos de Python desde un archivo utilizando la biblioteca Pickle. Recuerda manejar las excepciones adecuadamente y asegurarte de la compatibilidad de los objetos serializados y deserializados.