La persistencia de datos en Python te permite que una aplicación recuerde su estado entre ejecuciones. Aquí verás cómo serializar objetos a JSON, escribirlos en un archivo y preparar todo para, más adelante, reconstruirlos al cargar. Con una clase central, Persistencia, lograrás guardar nombre, usuarios, libros y una fecha de guardado para auditar cambios.
¿Cómo implementar persistencia de datos con JSON en Python?
La idea clave: convertir objetos Python a formato JSON serializable, escribirlos en un archivo y, en una fase posterior, cargarlos para reconstruir el estado. Es vital manejar errores y validar datos para evitar inconsistencias.
Serializa estructuras a JSON para almacenamiento seguro.
Usa archivos .json para persistir entre ejecuciones.
Prioriza validación y manejo de errores.
¿Qué estructura mínima necesita la clase Persistencia?
Crea un archivo persistencia.py y define una clase que reciba el nombre del archivo. Por defecto, será biblioteca.json. Así centralizas el acceso al almacenamiento.
Constructor con valor por defecto: biblioteca.json.
Un único punto de entrada para guardar datos.
¿Cómo escribir el archivo con with open y json.dump?
El context managerwith garantiza que el archivo se cierre correctamente. El modo "w" (write) escribe desde cero y el encoding "utf-8" asegura caracteres como eñes y tildes.
ensure_ascii=False conserva caracteres en español.
¿Cómo guardar usuarios, libros y fecha de guardado?
Además del nombre, es útil persistir las listas de usuarios y libros. Para colecciones de objetos, conviene convertir cada elemento a diccionario, por ejemplo con dict().
¿Cómo convertir objetos a diccionarios con dict?
Aprovecha una lista comprimida para transformar cada elemento de biblioteca.usuarios y biblioteca.libros.
datos ={"nombre": biblioteca.nombre,"usuarios":[dict(usuario)for usuario in biblioteca.usuarios],"libros":[dict(libro)for libro in biblioteca.libros],}
Lista comprimida para recorrer colecciones.
Conversión con dict() para serializar a JSON.
¿Cómo registrar la fecha de guardado?
Agregar una marca de tiempo te permite saber cuándo se persistió el estado, útil para auditoría y recargas futuras.
# Ejemplo conceptual según lo explicado:# from DateTime import DateTime# datos["fecha_guardado"] = DateTime.now().ISOFormat()
Campo fecha_guardado para trazabilidad.
Sello temporal en ISO format con now.
¿Qué errores y buenas prácticas debes considerar?
Mantén consistencia en nombres de atributos y el idioma del código. Un error típico fue usar biblioteca.name cuando el atributo real era biblioteca.nombre. Evita mezclar idiomas en variables; si eliges español, sé consistente, aunque se recomienda inglés en proyectos reales para evitar tildes en identificadores.
Verifica atributos: biblioteca.nombre en lugar de name.
Usa UTF-8 y ensure_ascii=False para textos en español.
Valida datos y maneja errores al serializar y escribir.
Comprueba resultados: tras ejecutar, se genera biblioteca.json con el contenido esperado.
Ejemplos prácticos: cambio de nombre "Platzi Biblioteca" a "B2" y verificación en el .json.
¿Te gustaría que incluyamos la carga desde JSON para reconstruir el estado en tu sistema de biblioteca? Deja tus dudas o casos y continuamos la conversación.
Serialización de objetos Python a JSON para persistencia de datos