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

Пребарај: #somoscontinuidad

当前筛选 #somoscontinuidad清除筛选
Cubadebate

@Cubadebate · Post #112260 · 03.04.2026 г., 18:16

📅3 de abril de 1991 🎙️#FidelCastro pronuncia discurso en el acto central por los Aniversarios XXIX de la Unión de Jóvenes Comunistas y XXX de la Organización de Pioneros "José Martí": “Esta Revolución es la Revolución de nuestro pueblo; es la Revolución de nuestros jóvenes; es la Revolución de nuestros estudiantes. Juntos la hicimos. Juntos la defendemos. Somos la misma cosa y no podemos dejar jamás de serlo.” www.fidelcastro.cu #100AñosConFidel#Cuba#Revolución#FidelCastro#SomosCuba#SomosContinuidad#RevoluciónCubana

Cubadebate

@Cubadebate · Post #112122 · 29.03.2026 г., 18:06

🎥90 Razones Capítulo 31 📍Capítulo 31 de la serie de la televisión cubana dedicada al 90 cumpleaños del Comandante en Jefe. El capítulo contiene momentos del encuentro sostenido con víctimas de la catástrofe nuclear de Chernobyl, el 29 de marzo de 1990. www.fidelcastro.cu #100AñosConFidel#Cuba#Revolución#FidelCastro#SomosCuba#SomosContinuidad#RevoluciónCubana