İleri Python Geliştirme Kursu
Bölüm
>
Seviye

Serileştirme Modülleri
JSON Modülü

Amaç

Servis istasyonuna gidin ve dosyaları biçimlendirmek için JSON modülünü kullanarak verilerin doğru şekilde depolandığından emin olun.

Ekteki binanın güneyinde, yeni inşaat alanında bir servis istasyonu var; bu tüm alan tarım arazisine dönüştürülmek üzere yeniden düzenlenecek. İstasyonda yeni geliştirme için verileri işleyen çeşitli terminaller bulunuyor; verileri manuel olarak yazabiliriz, ancak bu çok zaman alır. Veri işleme sürecinde, JavaScript Object Notation'ın kısaltması olan JSON'u kullanabiliriz; bu, programlama dillerinden bağımsız bir veri biçimidir ve bilgileri depolama ve iletim için kolay okunabilir şekilde saklar.

Python ile JSON kullanmak için JSON işlevlerine erişim sağlayan import json modülünü kullanabiliriz; amacımız doğrultusunda aşağıdaki işlevleri kullanacağız:

  • json.loads(): JSON dizgesini Python verisine dönüştürür; tek bir argüman alır; bu argüman, Python'a ayrıştırmak istediğiniz dizgedir.
  • json.dumps(): Python verisini JSON dize nesnesine dönüştürür; bu işlev en fazla dört (4) argüman alabilir; yalnızca ilk argüman işlevi kullanmak için gereklidir. Argümanlar şunlardır.
    1. JSON’a dönüştürmek istediğiniz Python verisi: sözlükler, listeler, demetler, dizeler, tamsayı, ondalık sayı, boolean ve None veri türleri olabilir.
    2. indent: veri noktasının başlangıcına eklemek istediğiniz boşluk sayısı
    3. separators: veri noktalarının arasında ve/veya sonunda görünmesini istediğiniz parçacıklar
    4. sort_keys: bir sözlük veri türünü dönüştürüyorsanız, sözlük anahtarlarını alfabetik olarak sıralar

Başlamak için, sol taraftaki karakoldaki altın X işaretine gidin ve notun bulunduğu masaya yönelin. Terminalin durumunu doğrulamak için gereken bilgileri kontrol etmek ve not almak üzere read() işlevini kullanın. Terminalin önündeki açık renkli X işaretine gidin, burada transmission adında bir sabit var; bunu JSON olarak biçimlendirmek için json.dumps() işlevini kullanın, şöyle: transmission = json.dumps(transmission).

load adlı bir sözlük oluşturun ve transmission sabitini argüman olarak alarak json.loads() işlevinin değerini saklayın. Bu, JSON’u Python’a dönüştürerek bilgilerin kolayca erişilebilir olmasını sağlar. Notta belirtilen anahtarlarla ve oluşturduğunuz load sözlüğünü kullanarak speak() işlevini kullanın. Örneğin: player.speak(load["system"]); bunu tüm anahtarlar için yapın.

Terminaldeki bilgileri kontrol ettikten sonra istasyona doğru yürüyün, içeri girin ve yeşil halının üzerindeki açık renkli X işaretine yönelin. Notu kontrol etmek için read() işlevini kullanın, değerleri kontrol edip not alın; editörde profile adlı önceden yazılmış bir sözlük var, eksik değerleri nottaki bilgilerle doldurun.

Yeşil halının üzerindeki koyu renkli X işaretine yürüyün, terminale yönelin ve transfer adında bir değişken oluşturun, profile sözlüğünü tek argüman olarak alarak json.dumps() işlevinin değerini saklayın. Böylece sözlüğü JSON dize nesnesine dönüştürmüş olursunuz. Önceden yazılmış display() işlevini kullanın ve verileri terminalde depolamak için transfer JSON’unu ekleyin.

Kırmızı halının üzerindeki koyu renkli X işaretine yürüyün ve terminalde daha önce girilmiş verileri doğrulamak için read() işlevini kullanın. Veriler uygun bir formatta sunulmamış; bilgileri doğru şekilde depolamak için JSON olarak saklanması ve biçimlendirilmesi gerekiyor. Veriler red_data adlı bir sözlük sabitinde saklanıyor; red_storage adında bir değişken oluşturun ve json.dumps() işlevinin değerini saklayın.

Verileri biçimlendirmek için işleve aşağıdaki argümanları ekleyin: sabiti JSON’a dönüştürmek için red_data’yı, metni biçimlendirmek için indenti 5 olarak, her satırın sonunda bu sembolleri eklemek üzere separators’ı ("- ", " = ") olarak ekleyin. Satır şöyle görünmelidir: red_storage = json.dumps(red_data, indent=5, separators=("- ", " = ")). Önceden yazılmış display() işlevini kullanın ve biçimlendirilmiş verileri depolamak ve görüntülemek için red_storage JSON dizgesini ekleyin.

Mavi halının üzerindeki koyu renkli X işaretine yürüyün, terminale yönelin ve read() işlevini kullanın; önceki gibi veriler doğru şekilde depolanmamış, biçimlendirilmeleri ve ayrıca sıralanmaları gerekiyor. Veriler blue_data adlı bir sabitte saklanıyor; blue_storage adında bir değişken oluşturun ve json.dumps() işlevinin değerini saklayın.

Argümanlar için: sabiti JSON’a dönüştürmek üzere blue_data’yı, metni biçimlendirmek için indenti 4 olarak, her satırın sonunda bu sembolleri eklemek üzere separatorsı (".0", " = ") olarak ekleyin. Bunlara ek olarak son argüman olarak sort_keys’i True olarak ayarlayın, şu şekilde: sort_keys=True. Önceden yazılmış display() işlevini kullanın ve sıralanmış verileri depolamak ve görüntülemek için blue_storage JSON dizgesini ekleyin, ardından bölümü tamamlayın.

Kod Kitabı