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

Резултати

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

Пребарај: #baseballevent

当前筛选 #baseballevent清除筛选
UXLINK

@uxlink_community · Post #551 · 17.07.2025 г., 06:47

UXLINK 야구 티켓 이벤트 2차 당첨자 소식! ⚾️ UXLINK Fujicard 야구 이벤트 2차 당첨자분들께 SSG 랜더스 파크에서 열리는 7/19(토) SSG vs 두산 경기 티켓(1인 2매)을 오늘 아침 발송 완료했습니다! 🎉 문자로도 안내드렸으니 확인 부탁드립니다. 아직 기회는 남아있습니다! 🏟 창원 NC파크에서 열리는 3차 NC 다이노스 vs 키움 히어로즈 경기 티켓 응모도 놓치지 마세요! UXLINK와 함께 Web3의 즐거움도 누리고, 야구도 즐겁게 관람하세요! 🚀 #UXLINK#Fujicard#야구이벤트#SSG랜더스#두산베어스#NC다이노스#키움히어로즈#KBO#Web3 UXLINK Baseball Ticket Event Round 2 Winner Update! ⚾️ Great news! We've completed sending out tickets (2 per winner) for the July 19th (Sat) SSG vs Doosan game, held at SSG Landers Park, to our UXLINK Fujicard Baseball Event Round 2 winners this morning! 🎉 Please check your SMS messages for details. The chance isn't over yet! 🏟 Don't miss your opportunity to enter for Round 3 tickets: NC Dinos vs Kiwoom Heroes at Changwon NC Park! Enjoy the excitement of Web3 with UXLINK, and have a great time at the baseball game! 🚀 #UXLINK#Fujicard#BaseballEvent#SSGLanders#DoosanBears#NCDinos#KiwoomHeroes#KBO#Web3