preloader

January 1, 1 | 2 minutes read
Index of content

Este enfoque sin duda funciona y proporciona una forma muy ligera de convertir un libro en JSON. Sin embargo, el enfoque presentado anteriormente significa que cada vez que queremos jsonify un libro debemos recordar llamar al método to_json(). En algunos casos esto significa que también tendremos que escribir un código ligeramente complicado. Para ejemplo, si deseamos devolver una lista de libros de la librería como una lista JSON, podría escribir: jsonify({’libros’: [b.to_json() para b en librería.libros]}) Aquí hemos utilizado una lista de comprensión para generar una lista que contiene el JSON versiones de los libros que se encuentran en la librería. Esto empieza a parecer demasiado complejo, fácil de olvidar y probablemente un error. propenso. Flask mismo usa codificadores para codificar tipos en JSON. El matraz proporciona una forma de creando sus propios codificadores que se pueden usar para convertir un tipo personalizado, como el Clase de libro, en JSON. Tal codificador puede ser utilizado automáticamente por el jso- función nificar(). Para ello debemos implementar una clase codificadora; la clase extenderá el matraz. superclase json.JSONEncoder. La clase debe definir un método predeterminado (self, obj). Este método toma un objeto y devuelve la representación JSON de ese objeto. Por lo tanto, podemos escribir un codificador para la clase Libro de la siguiente manera: El método predeterminado () en esta clase verifica que el objeto que se le pasa sea un instancia de la clase Libro y, si lo es, creará una versión JSON de la Libro. Esta estructura JSON se basa en los atributos isbn, title, author y price. Si no es una instancia de la clase Libro, luego pasa el objeto al padre clase. Ahora podemos registrar este codificador con el objeto de la aplicación Flask para que se utilizará siempre que un Libro deba convertirse a JSON. Esto se hace asignando el codificador personalizado al objeto de la aplicación Flask a través de app.json_encoder atributo: clase LibroJSONEncoder(JSONEncoder): def por defecto(self, obj): si es una instancia (obj, Libro): devolver { ‘isbn’: obj.isbn, ’título’: obj.título, ‘autor’: obj.autor, ‘precio’: obj.precio } demás: devuelve super(BookJSONEncoder, self).default(obj) 41.4 Codificación de libros en JSON 485

comments powered by Disqus

popular post

Temas de Pregrado en Ciencias de la Computación Guía avanzada a Python 3 Programación Juan caza

Read More

Temas de Pregrado en Ciencias de la Computación Guía avanzada a Python 3 Programación Juan caza

Read More

• https://docs.python.org/3/ El sitio principal de documentación de Python 3. Contiene tutoriales, referencias de bibliotecas, guías de configuración e instalación, así como Python cómo-tos • https://docs.

Read More