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

Пребарај: #spid

当前筛选 #spid清除筛选
Ultimora.net - POLITICS

@ULTIMORAPOLITICS · Post #43258 · 07.04.2023 г., 09:27

Il Governo ha deciso di mantenere in vigore lo #Spid: stanziati nel decreto Pnrr, in discussione in Commissione Bilancio del #Senato, 40 milioni di euro per permettere alla piattaforma di identità digitale di proseguire la propria attività anche per il 2024 @UltimoraPolitics

Hashtags

Ultimora.net - POLITICS

@ULTIMORAPOLITICS · Post #42510 · 20.12.2022 г., 12:47

#Spid, il capogruppo #FI alla #Camera Alessandro #Cattaneo assicura: "Non verrà cancellato. Ѐ uno strumento che semplifica la vita dei cittadini, permette di risparmiare tempo, evitando le file agli sportelli, e consente di agire in piena sicurezza. Stiamo cercando il modo di risolvere alcune criticità piuttosto che girarci dall'altra parte. Non possiamo ignorare che ci sono alcune categorie, come gli anziani, che incontrano difficoltà nell'utilizzarlo" @UltimoraPolitics