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 слични објави

Пребарај: #june12

当前筛选 #june12清除筛选
Hong Kong Democracy Movement

@hkdmovement · Post #8018 · 13.06.2025 г., 03:30

六年前的今天,香港人站在街頭,為自由與民主發聲。六年過去,世界各地的港人仍然緊守信念,堅持記憶不被抹去。 今年,多地舉辦紀念活動: 列斯 :「傘陣下相逢,毋忘六一二」擺街站 倫敦 & 曼徹斯特:雙城接力紀念行動 多倫多 :「612六周年祈禱會」@ North York Mel Lastmann Square 台北:「612行動—長夜未歇,暮光不滅」遊行 我們不曾遺忘,也不曾停止追尋公義。即使路途艱難,仍然並肩而行。 #612六周年#毋忘六一二#香港#自由#堅持到底 6 years ago, Hongkongers stood together on the streets, raising their voices for freedom and democracy. Today, despite challenges, Hongkongers worldwide remain steadfast in keeping the memory alive. This year, commemorative events are being held across different cities: Leeds – "Never Forget June 12" street booth London & Manchester – Relay remembrance events Toronto – "6th Anniversary Prayer Gathering" @ North York Mel Lastmann Square Taipei – "June 12 Action—The Long Night Continues, The Light Never Fades" march We have never forgotten, and we will never stop seeking justice. The road is tough, but we stand together. #June12#612Anniversary#HongKong#Freedom#StayStrong