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

Резултати

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

Пребарај: #yeswecanendtb

当前筛选 #yeswecanendtb清除筛选

Jangkitan TB Laten (LTBI) merupakan keadaan tindak balas sistem imun badan yang berterusan terhadap rangsangan antigen Mycobacterium Tuberculosis tanpa ada bukti klinikal TB aktif. Antara ujian yang boleh dilakukan untuk mengesan LTBI adalah ujian X-ray dada, ujian kulit tuberkulin (TST) atau ujian serologi IGRA. Penghidap TB Laten tidak mempunyai gejala TB, sentiasa berasa sihat dan tidak menjangkiti orang lain namun boleh menjadi TB jika tidak dirawat. #ANMS#KekalSihat#YesWeCanEndTB#sihatmilikku Sumber: Bahagian Pendidikan Kesihatan, KKM t.me/sihatmilikbersama

5% - 10% kontak Tibi berisiko mendapat Tibi dalam tempoh 2 tahun. Pemeriksaan kontak membolehkan diagnosa dan rawatan awal diberikan. Jika disahkan dijangkiti Tibi, rawatan akan diberi selama 6 bulan. #ANMS#KekalSihat#YesWeCanEndTB#sihatmilikku Sumber: Bahagian Pendidikan Kesihatan, KKM t.me/sihatmilikbersama

Today is #WorldTuberculosisDay We join hands together with the National Tuberculosis and Leprosy Control Programme, the Federal Ministry of Health Nigeria, and others to declare that #YesWeCanEndTB in Nigeria. Tuberculosis is preventable and treatable. Dial *3340# for more information on #TB. #StrongerTogether