Files
fastapi/docs/tr/docs/tutorial/encoder.md
Sebastián Ramírez b5d276bda8 🌐 Update translations for tr (add-missing) (#14790)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-05 16:43:38 +01:00

1.8 KiB
Raw Blame History

JSON Uyumlu Encoder

Bazı durumlarda, bir veri tipini (örneğin bir Pydantic model) JSON ile uyumlu bir şeye (örneğin dict, list vb.) dönüştürmeniz gerekebilir.

Örneğin, bunu bir veritabanında saklamanız gerekiyorsa.

Bunun için FastAPI, jsonable_encoder() fonksiyonunu sağlar.

jsonable_encoder Kullanımı

Yalnızca JSON ile uyumlu veri kabul eden bir veritabanınız olduğunu düşünelim: fake_db.

Örneğin bu veritabanı, JSON ile uyumlu olmadıkları için datetime objelerini kabul etmez.

Dolayısıyla bir datetime objesinin, ISO formatında veriyi içeren bir str'e dönüştürülmesi gerekir.

Aynı şekilde bu veritabanı bir Pydantic model'i (attribute'lara sahip bir obje) de kabul etmez; yalnızca bir dict kabul eder.

Bunun için jsonable_encoder kullanabilirsiniz.

Bir Pydantic model gibi bir obje alır ve JSON ile uyumlu bir versiyonunu döndürür:

{* ../../docs_src/encoder/tutorial001_py310.py hl[4,21] *}

Bu örnekte, Pydantic model'i bir dict'e, datetime'ı da bir str'e dönüştürür.

Bu fonksiyonun çağrılmasıyla elde edilen sonuç, Python standardındaki json.dumps() ile encode edilebilecek bir şeydir.

JSON formatında (string olarak) veriyi içeren büyük bir str döndürmez. Bunun yerine, tüm değerleri ve alt değerleri JSON ile uyumlu olacak şekilde, Pythonun standart bir veri yapısını (örneğin bir dict) döndürür.

/// note | Not

jsonable_encoder, aslında FastAPI tarafından veriyi dönüştürmek için internal olarak kullanılır. Ancak birçok farklı senaryoda da oldukça faydalıdır.

///