parse_obj
- Python kursu
- İleri seviye
- Ders 59/83
- 5 dk
Model.parse_obj ile dict'ten model oluşturmayı öğrenirsin.
model_validate
Pydantic v2'de bir sözlüğü modele çevirmek için model_validate kullanılır. Eski parse_obj yöntemi yerine önerilen yoldur. Sözlükten model örneği oluşturur.
from pydantic import BaseModel
class User(BaseModel):
name: str
age: int
data = {"name": "Ayşe", "age": 30}
u = User.model_validate(data)
print(u.name) # AyşeBu yöntem, yapısal veriden (ör. yapısal veri biçiminden) model oluşturmak için idealdir. Hatalı veri gelirse doğrulama hatası fırlatılır.
doğrulama ve hata
model_validate, veriyi doğrular ve modele çevirir. Zorunlu alan eksikse ya da tür uyuşmazsa ValidationError fırlatılır. Hata ayrıntılıdır; hangi alanın neden hatalı olduğunu söyler.
try:
u = User.model_validate({"name": "Ayşe"}) # age eksik
except ValidationError as e:
print(e)Bu nedenle, güvenilmeyen kaynaktan gelen veriyi modele çevirirken try/except kullanmak iyi bir uygulamadır.
Uygulama Sözlükten User modeli oluştur
from pydantic import BaseModel ile başla. class User(BaseModel): tanımla; name: str ve age: int alanlarını ekle. data = {"name": "Ayşe", "age": 30} tanımla. u = User.model_validate(data) ile modeli oluştur. print(u.name, u.age) ile değerleri yazdır.
Başlangıç kodu
# pydantic'den BaseModel'i içe aktar
# User sınıfını tanımla (name ve age alanları)
# data adında bir sözlük tanımla (Ayşe, 30)
# model_validate ile sözlüğü modele çevir
# name ve age değerlerini yazdırÖrnek çözüm
from pydantic import BaseModel
class User(BaseModel):
name: str
age: int
data = {"name": "Ayşe", "age": 30}
u = User.model_validate(data)
print(u.name, u.age)Beklenen çıktı
Ayşe 30
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 model_validate çağrısını tamamla
data = {"name": "Ayşe", "age": 30}
u = User.____(data)
data = {"name": "Ayşe", "age": 30}
u = User.model_validate(data)
Açıklama: User.model_validate(data) ile model oluşturulur.
2 User.model_validate(data) ne döndürür?
- Bir sözlük
- Bir User örneği Doğru cevap
- Bir dize
- Bir liste
Açıklama: model_validate bir User örneği döndürür.
3 model_validate kavramlarını eşleştir
| Kavram | Anlamı |
|---|---|
model_validate |
Sözlüğü modele çevirir |
ValidationError |
Doğrulama hatasıdır |
data |
Giriş sözlüğüdür |
User örneği |
Çıkış değeridir |