Использование Pydantic сегодня стало нормой, и это правильно. Но иногда на ревью вижу, что используют его не всегда корректно.
Например, метод BaseModel.model_dump() по умолчанию не преобразует стандартные типы, такие как datetime, UUID или Decimal, в простой сериализуемый для JSON вид. Тогда пишут кастмоный сериализатор для этих типов чтобы функция json.dump() не падала с ошибкой.
import uuid
from datetime import datetime
from decimal import Decimal
from uuid import UUID
from pydantic import BaseModel
class MyModel(BaseModel):
id: UUID
date: datetime
value: Decimal
obj = MyModel(
id=uuid.uuid4(),
date=datetime.now(),
value='1.23'
)
print(obj.model_dump())
# не подходит для json.dump
# {
# 'id': UUID('4f8c1bc4-25fd-40cd-9dbe-2c73639b0dc1'),
# 'date': datetime.datetime(2025, 12, 12, 12, 12, 12, 111111),
# 'value': Decimal('1.23')
# }
# добавляем свой кастомный сериализатор
json.dumps(obj.model_dump(), cls=MySerializer)
# {
# 'id': '4f8c1bc4-25fd-40cd-9dbe-2c73639b0dc1',
# 'date': '2025-12-12T12:12:12.111111',
# 'value': '1.23'
# }
В данном случае класс MySerializer обрабатывает datetime, UUID и Decimal. Например так:
class MySerializer(json.JSONEncoder):
def default(self, o):
if isinstance(o, Decimal):
return str(o)
elif isinstance(o, datetime):
return o.isoformat()
elif isinstance(o, UUID):
return str(o)
return super().default(o)
Специально для тех, кто всё еще так делает - в этом нет необходимости!
Pydantic может это сделать сам, просто нужно добавить параметр mode="json".
json.dumps(obj.model_dump(mode="json"))
# {
# 'id': '4f8c1bc4-25fd-40cd-9dbe-2c73639b0dc1',
# 'date': '2012-12-12T12:12:12.111111',
# 'value': '1.23'
# }
#pydantic#libs
🇺🇸Трамп не вдавался в детали мирного плана. В Белом доме не знают, что происходит, — WP со ссылкой на американского чиновника
Президент США не слишком вовлечён в детали.
«Вы ему говорите: „Я постараюсь договориться“. Он отвечает: „Отлично, иди и посмотри, что можно сделать“. Вот такой уровень его погружения в вопрос», — сказал чиновник.
🔹#Трамп#WP#США
📱Спасибо, что следите за новостями вместе с 🤨News!
➡️Поддержать канал Boostами
Washington Post: как остаться наедине со своими мыслями
Думать - это сложно, говорим без всякой иронии. Особенно если речь идет о размышлениях не над какой - то конкретной задачей, но просто в качестве внутренней работы или даже удовольствия ради. Однако, как и любой практике, подобным размышлениям можно научиться, и сегодня мы поговорим о том как это сделать.
«Если мы не единственный вид, то один из немногих видов, у которых есть такие внутренние расширенные линии мыслей, не только о том, что уже произошло или может произойти, но и о том, что никогда не произойдет или могло бы произойти»,
https://theidealist.ru/alonewth/
#WP#человек#мышление#психология
The Washington Post: как правильно держать телефон
«Вы просто неправильно его держите» - сказал однажды Стив Джобс в ответ на обвинения пользователей в том, что его детище плохо ловит сотовую связь. Сегодня врачи повторяют эту ставшей классической реплику, но уже по другому поводу: оказывается, правильно держать смартфон необходимо для того, чтобы минимизировать вред от его использования.
«Идеальный способ держать телефон — не держать его вообще».
https://theidealist.ru/holditright/
#WP#технологии#здоровье#смартфоны
The Washington Post: удивительно простое упражнение, которое поможет снизить кровяное давление
Есть проблемы с давлением? Немного людей возрастом за 30 могут похвастать тем, что у них таких проблем нет. Но не всегда стоит спешить принимать горстями таблетки. По мнению специалистов, регулярное выполнение упражнений вроде приседаний у стены может оказать потрясающий оздоровительный эффект. Заранее предупреждаем: давление - не шутка, и перед внедрение любых нагрузок лучше проконсультироваться с врачом!
«Недавнее исследование, опубликованное в British Journal of Sports Medicine, предполагает, что изометрические упражнения, такие как приседания у стены, могут помочь снизить кровяное давление даже более эффективно, чем другие формы упражнений, включая аэробную активность, силовые тренировки или высокоинтенсивные интервальные тренировки».
https://theidealist.ru/lowerubp/
#WP#наука#здоровье#упражнение
WP: в свои 77 лет она в такой же форме, как 25-летняя. Что ее тело рассказывает нам о старении
Джинни Райс — яркий пример того, что возраст не является пределом для физических возможностей. В свои 77 лет она пробежала Бостонский марафон и побила мировой рекорд в возрастной группе 75–79 лет. Её физиологические показатели, особенно уровень VO₂ max, соответствуют уровню 25-летней женщины. Учёные изучают Райс, чтобы понять, как тренировки и, возможно, гены помогают противостоять старению. Начав бегать в 35 лет для поддержания формы, Райс со временем стала одной из лучших бегуний в своей возрастной категории.
«Никогда не поздно начать заниматься спортом».
https://theidealist.ru/jrice/
#WP#человек#здоровье#спорт#старение