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, обеспечивая совместимость между двумя платформами.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3