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

Резултати

Пронајдени 18 слични објави

Пребарај: #promisesdelivered

当前筛选 #promisesdelivered清除筛选
MyGov Newsdesk

@mygovcoronanewsdesk · Post #11786 · 16.01.2023 г., 08:02

दुर्गम पहाड़ी क्षेत्रों में बेहतर 'कनेक्टिविटी' "दुर्गम पहाड़ी क्षेत्रों में पर्यावरण अनुकूल व टिकाऊ 'कनेक्टिविटी' के लिए वर्ष 2022-23 में 45 किमी लंबी 8 रोपवे परियोजनाओं के निर्माण का प्लान तैयार। #PromisesDelivered https://youtu.be/rxj4mVUM1jI

MyGov Newsdesk

@mygovcoronanewsdesk · Post #11757 · 13.01.2023 г., 09:43

लॉजिस्टिक सेक्टर को गति प्रदान करने हेतु मील का पत्थर साबित हो रही पीएम गति शक्ति योजना। इस पहल से न केवल आर्थिक विकास को गति मिल रही है बल्कि युवाओं के लिए रोजगार के नए अवसरों में बढ़ोतरी हो रही है। #PromisesDelivered 🔗https://youtu.be/GABWLw8Ebgw

MyGov Newsdesk

@mygovcoronanewsdesk · Post #11718 · 09.01.2023 г., 06:38

प्रधानमंत्री के नेतृत्व में केंद्र सरकार पीएलआई योजना के तहत बजट में भारी वृद्धि कर सौर ऊर्जा क्षमता के महत्वाकांक्षी लक्ष्यों की प्राप्ति की दिशा में तेजी से अग्रसर है। #PromisesDelivered https://youtu.be/N5KS4nZHJfU

MyGov Newsdesk

@mygovcoronanewsdesk · Post #11687 · 04.01.2023 г., 06:09

स्टार्टअप को प्रोत्साहन से ‘आत्मनिर्भर भारत’ को मजबूती। स्टार्टअप को टैक्स प्रोत्साहनों का पात्र बनाने के लिए स्टार्ट-अप्स के निगमन की अवधि को एक वर्ष बढ़ाकर 31 मार्च, 2023 किया गया। #PromisesDelivered https://youtu.be/jjtkiKwPCUw

12
ПретходнаСтраница 1 од 2Следна