Hacer que las clases de Python sean serializables en JSON
La serialización permite que los objetos se conviertan a un formato adecuado para la persistencia o la transferencia. La serialización de clases personalizadas en JSON a menudo resulta en un TypeError debido a su naturaleza no serializable en JSON.
Implementación de un método toJSON()
Un enfoque es crear un Método toJSON() para la clase, que maneja manualmente su serialización. Esto requiere implementar una función de serialización JSON personalizada y garantizar el manejo adecuado de los objetos anidados.
import json class FileItem: def __init__(self, fname): self.fname = fname def toJSON(self): return json.dumps(self.__dict__) x = FileItem('/foo/bar') print(x.toJSON()) # Outputs: '{"fname": "/foo/bar"}'
Usando la biblioteca orjson
Para obtener una información completa solución, considere usar la biblioteca orjson, que proporciona una forma eficiente y personalizable de serializar clases personalizadas en JSON. Ofrece funciones avanzadas como aplicación de esquemas y compatibilidad con estructuras de objetos complejas.
import orjson @orjson.dataclass class FileItem: fname: str x = FileItem('/foo/bar') json_bytes = orjson.dumps(x) # Returns a byte string print(json_bytes.decode()) # Outputs: '{"fname": "/foo/bar"}'
Conclusión
Usando un toJSON() personalizado El método o la biblioteca orjson proporcionan soluciones convenientes para serializar clases de Python a JSON. Ambos enfoques garantizan que los objetos puedan representarse y transmitirse eficazmente en formato JSON.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3