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

Пребарај: #estudiante

当前筛选 #estudiante清除筛选
EmbajadaRusaVen

@embajadarusaven · Post #1319 · 26.01.2024 г., 04:06

🇷🇺🇻🇪 El 25 de enero - Día del #Estudiante- la Embajada acogió la tradicional reunión anual de egresados de universidades rusas y soviéticas. El Embajador Sergey Melik-Bagdasarov en su discurso de bienvenida destacó que #Venezuela es el líder entre los países latinoamericanos en el número de becas asignadas por el Gobierno de la Federación de Rusia, lo que atestigua los fuertes lazos entre nuestros países en el ámbito educativo. Destacó la cohesión y la enérgica participación de los graduados y estudiantes en la promoción de una imagen positiva de Rusia, el amor por la historia, la cultura y el idioma rusos, que siempre tratan de compartir con los demás. 📆 El jefe de la misión diplomática compartió con los activistas los planes de actos conmemorativos para el próximo año, y también invitó a los presentes a conocer la exposición dedicada al 80 aniversario del levantamiento del sitio de #Leningrado. 👨‍🎓El director de la Asociación de Egresados "RedVenRus", C. Ramos, subrayó: 💬 Nuestro objetivo es construir rusofilia porque es así que oponemos al intento del Occidente de construir rusofobia! 👩‍🎓 S. Borelli, jefa de la Asociación de Egresados "Averus" 💬 Ser estudiante venezolano en #Rusia es una responsabilidad grandísima porque somos embajadores de la idiosincrasia venezolana, de nuestra forma de ser. La reunión se celebró en un ambiente cálido y cordial. Los invitados intercambiaron recuerdos e impresiones de los mejores años de sus vidas.