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

Пребарај: #potus2026

当前筛选 #potus2026清除筛选

BOMBENSTIMMUNG IM WEISSEN HAUS TRUMP DROHT ZERSTÖRUNG ALLER BRÜCKEN UND KRAFTWERKE AN WASHINGTON D.C., 06.04. ◼️Ein gut aufgelegter Donald Trump spricht zum aktuellen Stand des Krieges und präzisiert sein Ultimatum an den Iran. Dem droht am Dienstag ein vernichtender Schlag gegen seine Verkehrs- und Energieinfrastruktur.#USA2026#POTUS2026#Iran2026 ◼️„Wegen der Stärke unseres Militärs haben wir einen Plan in dem jede Brücke im Iran morgen Nacht um 24.00 Uhr zerstört ist, in dem jedes Kraftwerk „außer Betrieb" sein wird...." Und mit „außer Betrieb" meint Trump die „vollkommene Zerstörung". ◼️„Das wird über einen Zeitraum von vier Stunden geschehen, wenn wir es wollen. Aber wir wollen nicht, dass es so weit kommt." Vorher soll der Iran kapitulieren, gerne bedingungslos. Kriegsminister Pete Hegseth warnt später davor, seinen Chef zu unterschätzen. ◼️ Der Iran soll das Atomprogramm, die Raketen, seine Rohstoffe und die Macht im Land ausliefern. Und das wird er nicht tun. 👉@RoyalAllemand