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

Пребарај: #creat

当前筛选 #creat清除筛选
dopingpong

@dopingram · Post #3035 · 01.06.2024 г., 11:06

DIGGER HD, design by Doping Pong, 2009 Обновление классической аркадной компьютерной игры 80-х. Российско-американская компания Creat Studios выпустила Digger HD для Sony PlayStation® Network в Северной Америке и Европе осенью 2009 года. Фирменный стиль, а также дизайн всех героев и уровней создала арт-группа Doping pong. Digger HD, ремейк классической компьютерной игры DIGGER™© 1983 Windmill Software Inc., претерпел серьезные изменения в новом тысячелетии, оставаясь при этом верным своему игровому винтажному процессу. Игроки управляют небольшой копательной машиной, которая должна пробраться через подземный лабиринт. Геймеры роют землю по горизонтали и вертикали, прокладывая свой собственный путь, собирая драгоценности, монеты и другие бонусы, избегая при этом преследующих их монстров. «Очень приятно видеть, что такая замечательная игра, как Digger™, возвращается в обновленном виде в 21-м веке», — сказала Джо-Энн Кемпе, президент Windmill Software Inc. и соавтор Digger™. «Мы в восторге от платформы PSN, которая позволит новому поколению геймеров открыть для себя Digger HD и насладиться им». Digger HD для PlayStation Network – это 60 уровней подземных лабиринтов, где за каждым углом что-то скрывается, будь то монстр, бонус или мешок с золотом. Раскапывайте археологические артефакты и палеонтологические останки, погребенные под поверхностью земли. Собирайте все трофеи и узнайте, как получить секретные. More info: https://blog.playstation.com/archive/2010/02/18/digger-hd-demo-now-available/ https://www.playstationlifestyle.net/2009/09/29/creat-studios-digger-hd-digs-its-way-onto-the-psn-this-week/ Official Trailer: https://youtu.be/IclImKm_GLg?si=2YxnAN99YKSRgEej #dopingpong#dopingames#digger#hd#sony#playstation#creat#studios#onlinemuseum