Ejercicio de programación con Python: Reto serialización
2h 0m
Desarrolla un sistema en Python para serializar y deserializar objetos en JSON, XML y pickle con verificación de integridad y manejo de errores.
Crea un archivo
persona.py
que contenga la definición de la clasePersona
con los atributos nombre, edad, correo y aficiones (lista). Implementa los métodos__str__
y__eq__
para facilitar la comparación de objetos.Desarrolla un archivo
serializador.py
que contenga una claseSerializador
con métodos estáticos para serializar y deserializar objetos en los formatos JSON, XML y pickle. Cada formato debe tener sus propios métodos (por ejemplo,to_json
,from_json
, etc.).Implementa en
serializador.py
un mecanismo para verificar la integridad de los datos después del proceso de serialización/deserialización. Esto podría ser un métodoverificar_integridad
que compare el objeto original con el objeto deserializado.Añade manejo de errores adecuado en todos los métodos de serialización y deserialización. Utiliza bloques try-except específicos para cada tipo de error que pueda ocurrir y proporciona mensajes de error informativos.
Crea un archivo
main.py
que importe los módulos anteriores y demuestre todas las funcionalidades implementadas. Debe crear instancias dePersona
, serializarlas en los tres formatos, deserializarlas y verificar la integridad.Amplía la funcionalidad para manejar colecciones de objetos. Modifica los métodos de serialización para que puedan procesar tanto objetos individuales como listas de objetos.
Implementa una interfaz de línea de comandos simple en
main.py
utilizandoargparse
que permita al usuario seleccionar el formato de serialización y la operación a realizar (serializar o deserializar).Añade una función de persistencia que guarde los datos serializados en archivos y los recupere. Los nombres de los archivos deben seguir un patrón como
datos_<formato>.<extensión>
.Documenta todo el código siguiendo el estilo de docstrings de PEP 257. Cada clase y método debe tener su documentación explicando su propósito, parámetros y valores de retorno.
Más ejercicios de programación con Python
Evalúa tus conocimientos en Python con más ejercicios de programación de tipo Test, Puzzle, Código y Proyecto con VSCode.
Módulo math
Reto herencia
Excepciones
Introducción a Python
Reto variables
Funciones Python
Reto funciones
Módulo datetime
Reto acumulación
Reto estructuras condicionales
Polimorfismo
Módulo os
Reto métodos dunder
Diccionarios
Reto clases y objetos
Reto operadores
Operadores
Estructuras de control
Funciones lambda
Reto diccionarios
Tecnologías de este ejercicio de programación
Entornos de desarrollo para este ejercicio

Visual Studio Code

GitHub