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

Пребарај: #diario

当前筛选 #diario清除筛选
🌷Haditas Estudiosas📋

@apuntes_digitales · Post #5566 · 01.10.2023 г., 01:59

੭🍂 15 ideas para páginas de tu diario parte 2 ୧ 𝅄 . por @apuntes_digitales en edición otoño 16. ¿Qué hice hoy? 17. Tareas menos favoritas 18. Inspiración para outfits 19. DIYs que quiero intentar 20. ¿Cómo está el clima? 21. Una lista 22. Detalles sobre mi apariencia que me gustan 23. Lugar favorito para estar 24. Si el otoño fuera una persona... 25. Planes para Halloween 26. Tengo miedo de... 27. ¿Qué es el miedo? 28. Mi disfraz de Halloween 29. Recetas que te gustaría probar 30. Favoritos de octubre. Pd: no olvides participar en nuestra dinámica especial para celebrar el 1k 🥳toca aquí para ver más detalles #journaling#diario#prompts

🌷Haditas Estudiosas📋

@apuntes_digitales · Post #5543 · 29.09.2023 г., 23:00

੭🍂15ideasparapáginasdetudiario ୧ 𝅄 . por @apuntes_digitales en edición otoño 1. Metas de octubre 2. Películas de terror para ver 3. Si fuera una bruja 4. Mis villanos favoritos 5. Mejores dulces 6. Lo que me hace sentir confianza 7. Lo que me pone nervioso/a 8. Temporada favorita 9. ¿Qué quiero lograr antes de que termine el año? 10. Último sueño que recuerdo 11. Frases que amo 12. Mi pérdida más difícil 13. Estoy emocionado/a por... 14. Ideas para disfraces de Halloween 15. Un lugar al que quiero ir segunda parte ? 20 🎃 Pd: gracias a haruki por la idea <3 próximamente seguiremos cumpliendo con sus pedidos, gracias por el apoyo y por leer 🫰 #journaling#diario#prompts