0Pricing
Python Academy · Ders

İç İçe JSON Yapılarını İşleme

Karmaşık iç içe JSON nesnelerinde gezinin ve bunları dönüştürün.

İç İçe JSON Yapılarını İşleme, CoddyKit'te ücretsiz bir Python Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Python Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Python Academy kursu toplamda 4 dersten oluşur.

Giriş

Gerçek dünyadaki JSON verileri derin biçimde iç içe olabilir. İç içe yapıların içinde gezinmeyi, bu yapıları dönüştürmeyi ve doğrulamayı bilmek çok önemlidir.

İç İçe Anahtarlara Erişme

data['user']['address']['city'], iç içe dict yapılarında gezinir. Eksik anahtarları yönetmek için her düzeyde .get() kullanın.
import json
data = {'user': {'address': {'city': 'NYC', 'zip': '10001'}}}
print(data['user']['address']['city'])

Güvenli İç İçe Erişim

data.get('user', {}).get('address', {}).get('city'), .get() çağrılarını güvenli biçimde zincirler.
data = {'user': {'name': 'Alice'}}
city = data.get('user', {}).get('address', {}).get('city', 'unknown')
print(city)

Nesne Dizileri Üzerinde Yineleme

JSON nesne dizileri, dict listeleridir. Bir for döngüsüyle yineleyin.
import json
data = json.loads('[{"name":"Alice"},{"name":"Bob"}]')
for user in data:
    print(user['name'])

İç İçe JSON'u Düzleştirme

İç içe dict yapılarını noktalı anahtarlara sahip düz bir dict yapısına dönüştürmek için özyinelemeli bir işlev yazın.
def flatten(d, prefix=''):
    result = {}
    for k, v in d.items():
        key = f'{prefix}.{k}' if prefix else k
        if isinstance(v, dict):
            result.update(flatten(v, key))
        else:
            result[key] = v
    return result
print(flatten({'a': {'b': {'c': 1}}, 'd': 2}))

Dizileri Filtreleme

[user for user in data if user.get('active')], bir JSON dizisini koşula göre filtreler.
data = [{'name':'A','active':True},{'name':'B','active':False}]
active = [u for u in data if u.get('active')]
print(active)

İç İçe Verileri Dönüştürme

Her iç içe nesneden bir alan çıkarın: [item['name'] for item in data]
data = [{'id': 1, 'name': 'Alice'}, {'id': 2, 'name': 'Bob'}]
names = [d['name'] for d in data]
print(names)

jsonschema ile Şema Doğrulama

pip install jsonschema. jsonschema.validate(instance, schema), geçersiz verilerde ValidationError oluşturur.
# from jsonschema import validate
# schema = {'type':'object','required':['name']}
# validate({'name':'Alice'}, schema)  # OK
# validate({}, schema)  # raises ValidationError
print('schema validation demo')

İç İçe Dict Yapılarını Derinlemesine Güncelleme

Shallow dict.update(), iç içe dict yapılarını birleştirmez. İç içe birleştirme için özyinelemeli bir deep_update yazın.
def deep_update(base, override):
    for k, v in override.items():
        if isinstance(v, dict) and isinstance(base.get(k), dict):
            deep_update(base[k], v)
        else:
            base[k] = v
    return base
result = deep_update({'a': {'x': 1}}, {'a': {'y': 2}})
print(result)

Python ile jq tarzı sorgular

Karmaşık sorgular için jq kitaplığını veya özel bir özyinelemeli aramayı kullanın: find_all(data, 'key').
def find_all(obj, key):
    if isinstance(obj, dict):
        if key in obj: yield obj[key]
        for v in obj.values(): yield from find_all(v, key)
    elif isinstance(obj, list):
        for item in obj: yield from find_all(item, key)
data = {'a': {'name': 'x'}, 'b': [{'name': 'y'}]}
print(list(find_all(data, 'name')))

NDJSON'e serileştirme

Satırlarla ayrılmış JSON (NDJSON): satır başına bir JSON nesnesi. json.dumps(obj) + '\n' ile yazın.
import json
objects = [{'id': 1}, {'id': 2}, {'id': 3}]
ndjson = '\n'.join(json.dumps(o) for o in objects)
print(ndjson)

Hızlı kontrol

'key' eksik olduğunda data.get('key', {}).get('nested') ne döndürür?

Özet

İç içe JSON: güvenli erişim için .get() zincirleyin. Diziler üzerinde for ile yineleyin. Özyinelemeyle düzleştirin. Liste kavrayışıyla filtreleyin. Doğrulama için jsonschema kullanın.

Devam edin

Böyle devam edin! Sonraki derse geçin.

Sıkça Sorulan Sorular

“İç İçe JSON Yapılarını İşleme” dersi ücretsiz mi?

Evet — “İç İçe JSON Yapılarını İşleme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Python Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Python Academy kursu toplamda 4 dersten oluşur.

“İç İçe JSON Yapılarını İşleme” dersinde ne öğreneceğim?

Karmaşık iç içe JSON nesnelerinde gezinin ve bunları dönüştürün. Python Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Python Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Python Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“İç İçe JSON Yapılarını İşleme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Python Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Python Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. JSON Kodlama ve Kod Çözme
  2. İç İçe JSON Yapılarını İşleme
  3. csv.reader ile CSV Okuma
  4. csv.DictWriter ile CSV Yazma
← Python Academy Sayfasına Dön