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

Пребарај: #ferroviaire

当前筛选 #ferroviaire清除筛选

Série noire en Espagne : un second accident grave ferroviaire 48 h après le drame d'Adamuz. En Catalogne (Gelida, près de Barcelone), un train de banlieue a heurté un mur de soutènement effondré sur les voies (probablement à cause des pluies), causant 1 mort (le conducteur) et au moins 15 blessés, dont 4 graves. Cela survient deux jours après la grave catastrophe ferroviaire d'Adamuz (Andalousie), où une collision entre deux trains à grande vitesse a fait 42 morts et plus de 150-292 blessés (dont une quarantaine graves). Ce drame est la conséquence d'un déraillement dû à un défaut sur les rails (joint de rail cassé ou rupture de 30 cm signalée), possiblement lié à l'usure ou à la hausse du trafic. L’Espagne est sous le choc. Trois jours de deuil national. La population oscille entre deuil, entraide et colère sur la sécurité ferroviaire. Gelida renforce le sentiment d’insécurité nationale. https://www.lefigaro.fr/international/espagne-un-train-heurte-un-mur-effondre-sur-les-voies-en-catalogne-plusieurs-blesses-20260120 #ferroviaire#Espagne #accident Rejoignez-nous 👇 https://t.me/nemesisiam