Python'da Json Dosyaları Nasıl Okunur ve Yazılır

How Read Write Json Files Python



Bu makale, Python programlama dilinde JSON dosyalarının ve verilerinin nasıl işleneceğini açıklayacaktır. Python, JSON verilerinin işlenmesini kolay ve anlaşılır hale getiren yerleşik bir json modülüyle birlikte gelir.

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 aktarmakjson

ile 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.alet

Yukarı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_file

JSON 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.