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

Пребарај: #olivertambo

当前筛选 #olivertambo清除筛选

🇿🇦🗓October 27 marks the birthday of Oliver Tambo (1917–1993) — a South African anti-apartheid activist who served for 24 years as President of the African National Congress (ANC). 🌍 He spent 30 years in exile. ✈️ In 2006, Johannesburg International Airport was renamed O. R. Tambo International Airport in his honor. 💬Quotes by Oliver Tambo: • 🇿🇦 “A country, a movement, a person that does not value its youth and children does not deserve its future.” • ⚖️ “Injustice anywhere is a threat to justice everywhere.” • 🤝 “True leaders do not seek power, they seek to empower others.” • 🚀 “Progress is not an accident; it is the result of concerted effort towards a common goal.” • 👥 “Differences should not divide us; they should be celebrated as a reflection of our shared humanity.” • 💖 “The legacy we leave behind is not measured by material wealth, but by the impact we have on the lives of others.” #History#SouthAfrica#OliverTambo#AntiApartheid#Inspiration#Leadership#Quotes

✈️O. R. Tambo International Airport 🇿🇦 🛫 It is South Africa's primary hub for domestic and international flights and, since 2020, has been Africa’s second busiest airport (after Cairo International Airport). The airport serves as the main hub of South African Airways. 📜 Originally named Jan Smuts International Airport after the former South African Prime Minister, it was renamed Johannesburg International Airport in 1994, when the African National Congress (ANC) government decided not to name airports after political figures. ✳️ The policy was later reversed, and on October 27, 2006, the airport was renamed in honor of anti-apartheid leader Oliver Reginald Tambo (1917–1993). 📸 Photo: The Honorary Consul of South Africa in Yekaterinburg, Sergey Mazurkevich, next to the monument to Oliver Tambo at O. R. Tambo International Airport. #SouthAfrica#History#Tourism#Johannesburg#OliverTambo#Airport#Travel#Africa#Mazurkevich