CodeBlanks Logo Icon CodeBlanks

parse_obj

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şe

Bu 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

main.py
# 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

main.py
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

Soru
data = {"name": "Ayşe", "age": 30}
u = User.____(data)
Cevap
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

İleri seviye bölümündeki tüm dersler