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

Как обмениваться объектами Datetime между Python и JavaScript с помощью JSON?

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

How to Exchange Datetime Objects Between Python and JavaScript Using JSON?

JSON datetime между Python и JavaScript

Обмен объектами datetime между Python и JavaScript с использованием JSON может быть затруднительным из-за различий в их соответствующих датах и форматы времени. Чтобы решить эту проблему, мы можем реализовать собственные обработчики сериализации и десериализации JSON.

В Python вы можете определить функцию обработчика сериализации, используя параметр по умолчанию в функции json.dumps. Этот обработчик будет вызываться всякий раз, когда во время сериализации встречается объект datetime. В следующем фрагменте кода показано, как создать обработчик для объектов datetime, который преобразует их в формат ISO 8601:

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

Это выведет объект datetime в виде строки в формате ISO 8601:

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

В JavaScript вы можете использовать собственный обработчик десериализации для преобразования полученной строки ISO 8601 обратно в объект datetime. Полная функция-обработчик десериализации может выглядеть так:

function handler(obj) {
    if (typeof obj === 'string') {
        if (/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/.test(obj)) {
            // ISO 8601 Date string
            return new Date(obj);
        }
    }

    return obj;
}

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

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

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

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

Copyright© 2022 湘ICP备2022001581号-3