JSON hakkında
JSON (JavaScript Object Notation), verileri depolamak ve değiş tokuş etmek için anahtar/değer çiftlerini kullanan bir dosya biçimi ve veri depolama standardıdır. Genellikle RESTful API'lerinde, hafif veritabanlarında, yapılandırma dosyalarında ve veri depolaması, alması ve değiş tokuş etmesi gereken diğer çevrimdışı veya çevrimiçi yazılımlarda görülen en yaygın kullanılan veri değişim biçimidir. Çoğu programlama dili, varsayılan olarak JSON verilerini ayrıştırmak ve yazmak için kitaplıklar içerir ve JSON, bir programlama dili agnostik veri biçimidir. Bir JSON dosyasında veya yükünde depolanan değerler genellikle diziler, sayılar ve listeler (diziler) gibi serileştirilebilir veri türleri içerir.
JSON ve Python Sözlükleri
Python'daki JSON verileri, load yöntemi kullanılarak bir sözlük nesnesine dönüştürülür. Her ikisini de tanımlayan sözdizimi neredeyse aynı olduğundan, bazı kişilerin json verilerini ve bir python sözlüğünü eşitlediği sıklıkla görülür. Bununla birlikte, json verileri katı bir sözdiziminde yapılandırılmış bir metin dizesinden başka bir şey değildir, bir python sözlüğü ise bellekte depolanan bir veri yapısı nesnesidir. Sözlük verilerini bir metin dosyasında saklamak veya python olmayan başka bir programa göndermek istiyorsanız, önce onu bir metin dizesine (bayt) dönüştürmeniz gerekir. Bu dökülen / dönüştürülen metin dizesi JSON'un standart sözdiziminde tanımlanır ve bir python sözlüğünü json uyumlu bir dizeye dönüştürme işlemine serileştirme denir.
Python'da JSON Verilerini Okuma ve Boşaltma
JSON verileri bir sunucudan yanıt olarak alınabilir, dosyadan okunabilir, URL sorgu parametrelerinden dilimlenebilir vb. Bu makale temel olarak yerel olarak depolanan bir dosyadan json verilerini okumaya odaklanacaktır. Bir test.json dosyasının aşağıdaki verileri içerdiğini varsayalım:
{'kod adı': 'Eoan Ermin', 'sürüm': 'Ubuntu 19.10'}
Python'da test.json dosyasını okumak için aşağıdaki kodu kullanabilirsiniz:
içe aktarmakjson
ile birlikte açık ('test.json') olarakF:
veri=json.yük(F)
çöplük=json.çöplükler(veri)
Yazdır (veri)
Yazdır (tip(veri))
Yazdır (çöplük)
Yazdır (tip(çöplük))
Yukarıdaki koddaki ilk satır, json modülünü içe aktarır. Bir sonraki satırda, dosya içeriğini güvenli bir şekilde okumak için open ile kullanılır. with open bloğu içinde, veri değişkenindeki dosya içeriklerini okumak ve depolamak için json.load yöntemi kullanılır. Önceki adımda yüklenen veriler, json.dump yöntemi kullanılarak tekrar json dizesine dönüştürülür. Yukarıdaki kodu çalıştırmak aşağıdaki çıktıyı gösterecektir:
{'kod adı':'Eoan Ermin', 'sürüm':'Ubuntu 19.10'}<sınıf 'dikte'>
{'kod adı':'Eoan Ermin', 'sürüm':'Ubuntu 19.10'}
<sınıf 'str'>
Yukarıdaki çıktıda, json.load yönteminin ham json verilerini bir python sözlüğüne okuduğuna ve json.dumps yöntemlerinin bir sözlüğü JSON yapısıyla uyumlu bir dizeye dönüştürdüğüne dikkat edin. Bir JSON nesnesi bir python sözlük nesnesine dönüştürüldüğünde, verileri işlemek için yerleşik python sözlük yöntemlerini kullanabilirsiniz. Yukarıdaki örnek oldukça basittir ve JSON verilerindeki dizileri veya iç içe değerleri içermez. Ancak python içinde, bu değerleri diğer iç içe sözlükler ve listeler gibi işleyebilirsiniz.
JSON Verilerini Sıralama ve Güzel Yazdırma
json.dump yöntemi, anahtarları sıralamak ve daha iyi okunabilirlik için çıktıyı güzel bir şekilde yazdırmak için bazı isteğe bağlı parametreleri destekler.
içe aktarmakjsonile birlikte açık ('test.json') olarakF:
veri=json.yük(F)
çöplük=json.çöplükler(veri,sıralama_anahtarları=NS,girinti=4)
Yazdır (çöplük)
Yukarıdaki kod aşağıdaki çıktıyı gösterecektir:
{'kod adı': 'Eoan Ermin',
'sürüm': 'Ubuntu 19.10'
}
Veri Türü Dönüşümleri
Aşağıdaki liste, JSON değerlerinin python nesnelerine nasıl dönüştürüldüğünü ve bunun tersini gösterir.
JSON | piton |
sicim | P |
sayı | int veya kayan nokta |
doğru yanlış | Doğru yanlış |
boş | Hiçbiri |
dizi | liste |
nesne | dikte |
Json.tool Komut Satırı Modülü
Python, JSON dizelerini ve dosyalarını doğrulamak ve güzel bir şekilde yazdırmak için kullanılabilecek güzel bir komut satırı yardımcı programı json.tool içerir.
$ yankı'{'kod adı': 'Eoan Ermine', 'sürüm': 'Ubuntu 19.10'}'| python3 -m json.aletYukarıdaki komutu çalıştırmak size aşağıdaki çıktıyı gösterecektir:
{'kod adı': 'Eoan Ermin',
'sürüm': 'Ubuntu 19.10'
}
json.tool'u JSON dosyalarıyla da kullanabilirsiniz. Aşağıdaki komutta in_file ve out_file değerlerini istediğiniz değerlerle değiştirin:
$ python3 -m json.aletin_file out_fileJSON verilerini güzel yazdırma, sıralama ve doğrulama dışında, json.tool başka bir şey yapmaz. Bu nedenle, herhangi bir JSON verisini değiştirmek istiyorsanız, yerleşik JSON modülünü kullanarak kendi özel kodunuzu yazmanız gerekir.