Resim

JSON

Python'da JSON İşlemleri: Veri Serileştirme ve Ters Serileştirme

JSON Nedir ve Neden Önemlidir?

JSON (JavaScript Object Notation), okunması ve yazılması kolay bir veri değişim formatıdır. Python'daki sözlüklere (Dictionary) ve listelere çok benzer yapısı sayesinde, Python ile çalışması son derece kolaydır.

  • Önemli: JSON, internet üzerindeki veri alışverişinin (API'ler, Web Servisleri) fiili standardıdır.

Python'da JSON ile çalışmak için json modülünü import etmemiz gerekir.


import json

1. Temel Kavramlar: Serileştirme ve Ters Serileştirme

JSON işlemleri iki ana yönde ilerler:
KavramYönPython Objesi → JSON
Serileştirme (Encoding)Python verisini harici bir format (JSON) dizesine çevirme.dump() veya dumps() kullanılır.
Ters Serileştirme (Decoding)JSON formatındaki dizeyi veya dosyayı tekrar Python nesnesine çevirme.load() veya loads() kullanılır.

2. Python Veri Tipleri $\leftrightarrow$ JSON Eşleşmesi

JSON, Python'daki veri tiplerinin bir alt kümesini destekler:

Python TipiJSON Tipi
dict (Sözlük)object (Nesne)
list, tuplearray (Dizi)
str (Dize)string (Dize)
int, floatnumber (Sayı)
Truetrue
Falsefalse
Nonenull

Kendiniz Deneyebilirsiniz:

3. JSON Dizesine Dönüştürme: json.dumps() (Serileştirme)

Bu fonksiyon, bir Python nesnesini (genellikle bir sözlük veya liste) alarak, onu JSON formatına uygun bir dizeye (string) çevirir.

import json

python_veri = {
    "kullanici_id": 101,
    "isim": "Deniz Kara",
    "aktif": True,
    "notlar": [85, 90, 78]
}

# Python sözlüğünü JSON dizesine çevir
json_dizesi = json.dumps(python_veri)

print(type(json_dizesi)) 
# Çıktı: <class 'str'>

print(json_dizesi)
# Çıktı: {"kullanici_id": 101, "isim": "Deniz Kara", ...}

Biçimlendirme (Pretty Printing)

dumps() fonksiyonuna indent (girinti) argümanı ekleyerek çıktıyı daha okunur hale getirebilirsiniz.

# Biçimlendirilmiş JSON çıktısı (4 boşluk girintili)
biçimli_json = json.dumps(python_veri, indent=4, ensure_ascii=False)
print(biçimli_json)

4. JSON Dizesinden Python Nesnesine Dönüştürme: json.loads() (Ters Serileştirme)

Bu fonksiyon, JSON formatındaki bir dizeyi alarak onu orijinal Python nesnesine (genellikle Sözlük veya Liste) geri çevirir.

# Önceki adımdan gelen JSON dizesi
json_dizesi = '{"kullanici_id": 101, "isim": "Deniz Kara", 
"aktif": true}'

# JSON dizesini Python nesnesine çevir
python_sozluk = json.loads(json_dizesi)

print(type(python_sozluk))
# Çıktı: <class 'dict'>

print(python_sozluk["isim"])
# Çıktı: Deniz Kara

Kendiniz Deneyebilirsiniz:

5. Dosya İşlemleri: json.dump() ve json.load()

Disk üzerindeki dosyalarla çalışırken, dize (s) tabanlı fonksiyonlar yerine doğrudan dosya nesnelerini kullanan dump ve load kullanılır.

A. JSON Dosyasına Yazma (json.dump)

Dosya nesnesini girdi olarak alır ve serileştirme işlemini dosyaya kaydeder.

# JSON dosyasına yazma
yeni_veri = {"hata": False, "mesaj": "İşlem başarılı"}

with open("durum.json", "w") as f:
    # dump(python_nesnesi, dosya_nesnesi)
    json.dump(yeni_veri, f, indent=4) 
    # Dosya kapandığında içerik JSON formatında yazılmış olur.

B. JSON Dosyasından Okuma (json.load)

Dosya nesnesini girdi olarak alır ve dosyadaki JSON içeriğini Python nesnesine çevirir.

# JSON dosyasından okuma
with open("durum.json", "r") as f:
    # load(dosya_nesnesi)
    okunan_veri = json.load(f)

print(type(okunan_veri))
# Çıktı: <class 'dict'>
print(okunan_veri["mesaj"])
# Çıktı: İşlem başarılı

Python'ın json modülü, serileştirme ve ters serileştirme işlemlerini son derece kolaylaştırır. API'lerle çalışırken, yapılandırılmış veriyi kaydederken veya okurken bu dört temel fonksiyonu (dumps, loads, dump, load) akılda tutmak kritik öneme sahiptir.

Kendiniz Deneyebilirsiniz:

🔥 Python Kariyerinizi Hemen Başlatın!

Hemen kursumuza kaydolun ve bu güçlü araçları kullanarak profesyonel Python geliştiricisi olma yolunda ilk adımı atın. Kursumuzdaki uygulamalı modüller, sizi sadece bir yazılımcı adayı değil, hazır bir profesyonel haline getirecek. Python Eğitimini Udemy platformunda bulabilirsiniz.

[ Python Eğitimi Sıfırdan İleri Seviye ]

Tıklayın ve Python Eğitimine Hemen Kaydolun!

Yorumlar

Bu blogdaki popüler yayınlar

Python random Modülü

Python print()

Yazılım Nedir?