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

Пребарај: #andelecht

当前筛选 #andelecht清除筛选
🏆 Info 288 - DEPORTES

@info288_deportes · Post #35505 · 04.10.2024 г., 07:01

⚽️🇪🇺Europa League Cinco ultras del Anderlecht, detenidos tras arrojar sillas y objetos a los aficionados de la Real Sociedad#EuropaLeague#RealSociedad#Andelecht La Ertzaintza ha detenido a cinco personas tras los incidentes registrados en Anoeta durante partido de la Europa League entre la Real Sociedad y el Anderlecht, en la zona ocupada por los aficionados del equipo belga. Según ha informado el departamento vasco de Seguridad, una de las personas ha sido detenida por atentado a la autoridad, otra por desórdenes públicos y la tercera por daños y resistencia a los agentes. Las otras dos han sido detenidas posteriormente en relación con los incidentes registrados en la grada visitante. Durante la primera primera parte, ultras del Arderlecht han logrado romper la valla de seguridad instalada y han arrojado objetos, entre ellos asientos, a la grada inferior, desde donde presenciaban el encuentro los aficionados de la Real Sociedad. "Lo que ha pasado en la grada nos ha sacado del partido", admitió Mikel Oyarzabal, capitán txuri urdin. Muchos socios tuvieron que abandonar esa zona para evitar ser golpeados y el árbitro ha detenido durante escasos minutos el encuentro. Sin embargo, el holandés Pol van Boekel pero no ha llegado a suspenderlo, pese a las insistentes reclamaciones de los jugadores de la Real Sociedad. https://www.elmundo.es/deportes/futbol/europa-league/2024/10/03/66fef6f7fc6c8318658b458f.html 🏆@Info288_deportes