TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #397 · 12 ное.

Использование 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

Резултати

Пронајдени 2 слични објави

Пребарај: #lenticular

当前筛选 #lenticular清除筛选
dopingpong

@dopingram · Post #2724 · 08.12.2023 г., 09:03

Группа «Doping-Pong» Рак (Canсer) из серии «Зодиак», 2014 лентикулярная печать 60 х 42 см Тираж 1/1 Картина «Рак» – bon mot, каламбур, забавная буквальная интерпретация. Девушка на берегу вылавливает раков и встаёт для этого на четвереньки. Полная идиллия на лоне природы. Фильмы Уолта Диснея для взрослых. Пойманный рак, пытаясь высвободиться, извивается в руке, а девушка оборачивается к заставшему ее врасплох зрителю. На ее стопе то появляется, то исчезает надпись «made in dopingpong», не давая до конца осознать, с чем мы столкнулись: с жанровой живописной сценкой или с анимационным персонажем, сделанным на новой фабрике грёз. ПОМОЖЕМ ЧТАКУ! Живой аукцион Участие онлайн и по телефону Трансляция на сайте Суббота, 9 декабря в 15:00 Лот 9: https://vladey.net/ru/lot/11535 #dopingpong#zodiac#cancer#digitalart#lenticular#vladey

dopingpong

@dopingram · Post #2723 · 07.12.2023 г., 08:30

Группа «Doping-Pong» Рак (Canсer) из серии «Зодиак», 2014 лентикулярная печать 60 х 42 см Тираж 1/1 ПОМОЖЕМ ЧТАКУ! Живой аукцион Участие онлайн и по телефону Трансляция на сайте Суббота, 9 декабря в 15:00 Художник Валера Чтак в тяжелом состоянии. Необходимы деньги на дорогостоящее лечение. Они помогут спасти его жизнь. VLADEY проводит аукцион со стартовой ценой 100 евро. Живопись лучших художников страны для победы над недугом! ТВОРИМ БЛАГО ВМЕСТЕ! Все лоты стартуют со 100 €. Торги без комиссии с покупателя. Лот 9: https://vladey.net/ru/auctions/helpchtak #dopingpong#zodiac#cancer#digitalart#lenticular#vladey