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

Пребарај: #casback

当前筛选 #casback清除筛选
NIDO Russia (НИДО)

@nido_russia · Post #1739 · 31.07.2024 г., 08:37

Visa/NIN/Passport Application Discount (PAD) Everyone can finally use "PAD" to gain up to 10% discount when applying for Nigerian passport, NIN or VISA. ✅Avoid paying twice through unofficial sources or scammers who hide behind unregistered businesses. ✅Avoid mistakes in the application process that will cost you time, energy and money. Other Benefits? 1. We'll guide you on all that you need to do to successful apply for passport/visa issuance or re-issuance from start to finish. 2. We'll offer you a discount on payment for passport issuance or re-issuance or Nigerian VISA application in some cases. 3. We'll guide you on other documents that you might need after getting your passport/Visa. 4. We'll guide you on travel and accommodation plans if you have to travel to Moscow from another city. 5. We'll offer assistance in the case of delays or deliver your passport to you. Yours in service, Dr. Godwin Ibe Chairman, NIDO Russia +79262385618 https://t.me/nido_russia/1723 #pad#visa#nin#passport#discount#casback

NIDO Russia (НИДО)

@nido_russia · Post #1723 · 21.07.2024 г., 05:42

Visa/NIN/Passport Application Discount (PAD) Everyone can finally use "PAD" to gain up to 10% discount when applying for Nigerian passport, NIN or VISA. ✅Avoid paying twice through unofficial sources or scammers who hide behind unregistered businesses. ✅Avoid mistakes in the application process that will cost you time, energy and money. Other Benefits? 1. We'll guide you on all that you need to do to successful apply for passport/visa issuance or re-issuance from start to finish. 2. We'll offer you a discount on payment for passport issuance or re-issuance or Nigerian VISA application in some cases. 3. We'll guide you on other documents that you might need after getting your passport/Visa. 4. We'll guide you on travel and accommodation plans if you have to travel to Moscow from another city. 5. We'll offer assistance in the case of delays or deliver your passport to you. Yours in service, Dr. Godwin Ibe Chairman, NIDO Russia +79262385618 https://t.me/nido_russia/1723 #pad#visa#nin#passport#discount#casback