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

Пребарај: #tetapwaspada

当前筛选 #tetapwaspada清除筛选

Manteman Anker, Per jumat early weekend ini, mimin masih ga bosen-bosennya ngingetin yaaa. #JagaJarak ketika di tempat umum, transportasi umum ataupun dimana teman-teman berada ini perlu banget buat menekan angka penyebaran kasus positif Covid-19. Buat teman-teman Anker yang masih bekerja, yuk Pulang malam sedikit atau berangkat lebih pagi sedikit buat hindari kepadatan di transportasi umum mungkin dapat dilakukan. 🙏🏼 Mimin paham bahwa ga semua orang punya kemewahan untuk bisa lentur jam kerjanya, tapi sebisa mungkin kita maksimalkan ya. Tetap waspada, jaga kesehatan, jaga jarak minimal 1 meter dan jangan lupa cuci tangan pakai sabun! #JagaJarak#TetapWaspada#LawanCovid19#CuciTanganPakaiSabun#JagaKesehatan#AnkerWaspadaCovid19#DiRumahAja

Dear Teman-teman Anker, Minker mengucapkan: Majeng ring semeton titiang sareng sami, ring dija ja magenah, ngiring heningan kayune sami, laksanayang Nyepi antuk bhakti tulus ati. (Untuk semua saudara saya di mana pun berada, mari kita sucikan pikiran, sambut Hari Nyepi dengan sepenuh hati.) bagi semua teman-teman Anker yang merayakan. Selamat berlibur, selamat istirahat. #JagaJarak#TetapWaspada#LawanCovid19#CuciTanganPakaiSabun#JagaKesehatan#AnkerWaspadaCovid19#DiRumahAja

Teman-teman Anker, Mimin gak akan bosen-bosennya ngingetin yaaa, jadi jangan bosen juga bacanya heuheu. #JagaJarak ketika di tempat umum, transportasi umum ataupun dimana teman-teman berada ini perlu banget buat menekan angka penyebaran kasus positif Covid-19. Buat teman-teman Anker yang masih bekerja, yuk Pulang malam sedikit atau berangkat lebih pagi sedikit buat hindari kepadatan di transportasi umum mungkin dapat dilakukan. 🙏🏼 Mimin paham bahwa ga semua orang punya kemewahan untuk bisa lentur jam kerjanya, tapi sebisa mungkin kita maksimalkan ya. Tetap waspada, jaga kesehatan, jaga jarak minimal 1 meter dan jangan lupa cuci tangan pakai sabun! #JagaJarak#TetapWaspada#LawanCovid19#CuciTanganPakaiSabun#JagaKesehatan#AnkerWaspadaCovid19#DiRumahAja