"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como serializar e desserializar objetos Datetime em JSON entre Python e JavaScript

Como serializar e desserializar objetos Datetime em JSON entre Python e JavaScript

Publicado em 2024-11-08
Navegar:461

How to Serialize and Deserialize Datetime Objects in JSON Between Python and JavaScript

Tratamento de objetos de data e hora em JSON entre Python e JavaScript

Ao trocar dados entre Python e JavaScript, é comum encontrar objetos de data e hora. Para garantir a serialização e desserialização contínua desses objetos, várias abordagens podem ser empregadas.

Um método recomendado envolve a utilização do parâmetro 'default' de json.dumps em Python para lidar com objetos de data e hora. Este parâmetro permite a especificação de uma função manipuladora que converte os objetos datetime em um formato serializável.

from datetime import datetime

date_handler = lambda obj: (
    obj.isoformat()
    if isinstance(obj, (datetime.datetime, datetime.date))
    else None
)
json_str = json.dumps(datetime.datetime.now(), default=date_handler)
print(json_str)

Essa abordagem garante que os objetos datetime do Python sejam convertidos para o formato ISO 8601, que é padronizado e reconhecido pelo JavaScript.

"2010-04-20T20:08:21.634121"

Alternativamente, uma função de manipulador padrão mais abrangente pode ser definida para lidar com vários tipos de objetos:

def handler(obj):
    if hasattr(obj, 'isoformat'):
        return obj.isoformat()
    elif isinstance(obj, ...):
        return ...
    else:
        raise TypeError, 'Object of type %s with value of %s is not JSON serializable' % (type(obj), repr(obj))

Esta função verifica a presença de um atributo 'isoformat', que é comum em objetos datetime e o converte em um formato serializável. Além disso, ele lida com outros tipos de objetos conforme necessário.

Ao aproveitar essas técnicas, os objetos de data e hora podem ser serializados com eficiência em Python e desserializados em JavaScript, facilitando a troca suave de dados entre as duas linguagens.

Declaração de lançamento Este artigo foi reimpresso em: 1729330037 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

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