«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как сериализовать и десериализовать объекты Datetime в JSON между Python и JavaScript

Как сериализовать и десериализовать объекты Datetime в JSON между Python и JavaScript

Опубликовано 8 ноября 2024 г.
Просматривать:511

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

Обработка объектов Datetime в JSON между Python и JavaScript

При обмене данными между Python и JavaScript часто встречаются объекты datetime. Чтобы обеспечить плавную сериализацию и десериализацию этих объектов, можно использовать различные подходы.

Один рекомендуемый метод включает использование параметра «по умолчанию» json.dumps в Python для обработки объектов datetime. Этот параметр позволяет указать функцию-обработчик, которая преобразует объекты datetime в сериализуемый формат.

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)

Этот подход гарантирует, что объекты datetime Python преобразуются в формат ISO 8601, который стандартизирован и распознается JavaScript.

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

В качестве альтернативы можно определить более полную функцию-обработчик по умолчанию для обработки различных объектов. типы:

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))

Эта функция проверяет наличие атрибута isoformat, что часто встречается в объектах datetime и преобразует его в сериализуемый формат. Кроме того, он обрабатывает другие типы объектов по мере необходимости.

Используя эти методы, объекты datetime можно эффективно сериализовать из Python и десериализовать в JavaScript, что облегчает обмен данными между двумя языками.

Заявление о выпуске Эта статья перепечатана по адресу: 1729330037. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3