Tornando JSON serializável de classes Python
A serialização permite que objetos sejam convertidos em um formato adequado para persistência ou transferência. A serialização de classes personalizadas em JSON geralmente resulta em um TypeError devido à sua natureza não serializável em JSON.
Implementando um método toJSON()
Uma abordagem é criar um Método toJSON() para a classe, que lida manualmente com sua serialização. Isso requer a implementação de uma função de serialização JSON personalizada e a garantia do manuseio adequado de objetos aninhados.
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 a biblioteca orjson
Para uma visão abrangente solução, considere usar a biblioteca orjson, que fornece uma maneira eficiente e personalizável de serializar classes personalizadas para JSON. Ele oferece recursos avançados como aplicação de esquema e suporte para estruturas de objetos complexos.
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"}'
Conclusão
Usando um toJSON() personalizado O método ou a biblioteca orjson fornece soluções convenientes para serializar classes Python para JSON. Ambas as abordagens garantem que os objetos possam ser efetivamente representados e transmitidos em formato JSON.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3