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

Резултати

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

Пребарај: #quahilles

当前筛选 #quahilles清除筛选
TONlines – News

@tonlines · Post #6770 · 15.04.2025 г., 07:43

⚡️Gatto | Official Channel (18+): Quahilles Brings Heavy Artillery #GTON#Quahilles The Gatto | Official Channel (18+) announces the next phase of the battle against Nessie, with Quahilles leading the charge with a powerful attack. Players are instructed to assemble a squad of three heroes - Treeffin, Crocumber, and Fox - and place them according to the plan before the deadline. Offerings can enhance the squad’s damage, but must follow specific instructions. Source: link @tonlines

TONlines – News

@tonlines · Post #6747 · 14.04.2025 г., 07:32

⚡️Gatto | Official Channel: Quahilles Battle Update #GTON#Quahilles The Gatto | Official Channel provides an update on the Quahilles battle against the Loch Ness Monster. Players are instructed to form a complete squad of three heroes by April 15 and follow specific placement strategies to maximize damage. Additional damage can be achieved through offerings, requiring the burning of $GTON. Source: link @tonlines

TONlines – News

@tonlines · Post #6730 · 12.04.2025 г., 07:36

⚡️Gatto: Quahilles III Battle Instructions #GTON#Quahilles#Nessie The Gatto channel instructs players on how to prepare their squads to fight the approaching Loch Ness monster. Players must assemble and position their heroes, Pepperaptor, Hedgehog, and Dragoad, on the field by April 13, following strict placement rules. Burning $GTON is required to enhance squad damage through offerings. Source: link @tonlines