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

Резултати

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

Пребарај: #sozdik

当前筛选 #sozdik清除筛选

Кинофильм, әңгіме, көркем әдебиет, тіпті кейбір қарапайым диалогтарды аударғанда түсіндірме сөздіктен басқа сөздіктің барлығы боққа аспай, әдірем қалатыны бар. Жасанды интеллект жақсы аударады. Бірақ көңіл күйді жеткізе алмайды. Неге екеніне кішігірім мысал: ENG: Alrighty then, now tell me more about that night, but first let me make myself comfortable. RUS: (Deepl.com) "Хорошо, тогда расскажите мне больше о той ночи, но сначала позвольте мне устроиться поудобнее) Контекске сай аударма: "Что ж, выкладывай тогда, че там было в тот вечер, дай только устроюсь поудобнее. KAZ: Гугл транслейт: "Жарайды, енді сол түн туралы толығырақ айтып беріңізші, бірақ алдымен өзімді жайлы етуге рұқсат етіңіз." Контекске сай аударма: "А-а-л.. Сол түні не болды сонымен, ашып айт. Тұра тұр — дұрыстап жайғасып алайын." Көріп отырсыңдар, еш қиындығы жоқ қарадүрсін лексика, бірақ ерекше құрылым, экспрессия мен контекст кесірінен сөздікке немесе гуглға салып аудару опа бермейтін жағдай. #sozdik#контекс#context#sozdikqor#мағына