Python'da JSON Nasıl Ayrıştırılır
Yayınlanan: 2022-02-09JSON , veri alışverişi için popüler bir formattır. Python , JSON verilerini ayrıştırmak ve bunlarla çalışmak için yerleşik bir JSON modülüyle birlikte gelir. Ve bu eğitim size Python'da JSON ile çalışma hakkında her şeyi öğretecek.
Bu eğitimin sonunda şunları öğrenmiş olacaksınız:
- JSON'un temelleri,
- Python'da JSON dizeleri nasıl ayrıştırılır ve oluşturulur ve
- Python'da JSON dosyalarından nasıl okunur ve yazılır.
Hadi başlayalım!
JSON nedir?
JSON , Java Skript Nesne Notasyonu anlamına gelir ve veri alışverişi için metin tabanlı bir biçimdir . JSON başlangıçta JavaScript nesnelerinden esinlenmiş olsa da , neredeyse tüm programlama dilleri JSON ile çalışmayı destekler.
API'lerle çalıştıysanız veya yapılandırma dosyalarını okuduysanız, muhtemelen JSON ile karşılaşmışsınızdır.
API'leri sorgularken JSON'da veri gönderir ve alırsınız. Ve JSON, yazılım uygulamalarında istemci-sunucu iletişiminde de yaygın olarak kullanılmaktadır. Ayrıca JSON'u genel amaçlı veri depolama için de kullanabilirsiniz.
JSON formatı bir Python sözlüğünün formatına çok benzer. Sözlükler, verileri anahtar/değer çiftlerinde depolayan Python'da yerleşik güçlü veri yapılarıdır.
Daha ileri gitmeden önce, burada dikkat edilmesi gereken birkaç nokta var:
- Python'da bir JSON nesnesi sözlük olarak saklanır.
- JSON'daki bir dizi, Python listesi olarak saklanır.
- JSON'da Boole değerleri
true
vefalse
olarak belirtilir. Python'da bunlar BooleanTrue
veFalse
dönüştürülür.
JSON'dan Python'a çevrilen veri türleri hakkında daha fazla ayrıntı için buradaki belgeleri okuyun.
json
modülü Python standart kitaplığının bir parçası olduğundan, onu yüklemeniz gerekmez. Geçerli dizininize aşağıdaki gibi içe aktarabilirsiniz:
import json
Python'da JSON Dizisi Nasıl Yüklenir
Python'da bir JSON dizesi yüklemek için genel sözdizimi şöyledir:
<dict_obj> = json.loads(<json_str>)
Burada,
-
<dict_obj>
, JSON dizesini yüklemek istediğiniz Python sözlüğüdür, -
<json_str>
herhangi bir geçerli JSON dizesidir.
Bu, <json_str>
<dict_obj>
sözlüğüne yükler.
Bir örnek kodlayalım. Burada json_str
bir JSON dizesidir.
json_str = ''' { "books": [ { "title": "The Wind in the Willows", "author": "Kenneth Grahame", "year": "1908" }, { "title": "To the Lighthouse", "author": "Virginia Woolf", "year": "1927" } ] } '''
Ve aşağıdaki kod parçası, load loads()
yöntemini kullanarak JSON dizesi json_str
bir Python sözlüğüne nasıl yükleyebileceğinizi gösterir. py_dict
öğesinin bir Python sözlüğü olduğunu doğrulamak için yerleşik type()
işlevini kullanabilirsiniz.
py_dict = json.loads(json_str) type(py_dict) # Output: dict print(py_dict) # Output {'books': [{'title': 'The Wind in the Willows', 'author': 'Kenneth Grahame', 'year': '1908'}, {'title': 'To the Lighthouse', 'author': 'Virginia Woolf', 'year': '1927'}]}
Yukarıdaki kodda gösterildiği gibi, JSON dizesindeki tüm alanlar py_dict
içindeki anahtar/değer çiftleridir.
Python'da JSON Dizeleri Nasıl Oluşturulur
Diyelim ki bir Python sözlüğünüz var. Peki ondan nasıl bir JSON dizesi yaratırsınız?
Bu sözdizimi ile dumps()
yöntemini kullanarak bunu yapabilirsiniz:
<json_str> = json.dumps(<dict_obj>)
Burada,
-
<dict_obj>
, JSON dizesini oluşturmak istediğiniz Python sözlüğüdür, -
<json_str>
, elde edilen JSON dizesidir.
Böylece dumps()
yöntemi, <dict_obj> öğesini bir JSON dizesi <json_str>
<dict_obj>
içine döker.
Mevcut Python sözlüğümüze py_dict
. hadi yeni bir anahtar "movies"
ekleyelim. Aşağıdaki kod parçacığında gösterildiği gibi yapabilirsiniz:
py_dict["movies"] = [{"title":"The Imitation Game","year":"2014", "lang":"en","watched":True}]
Şimdi, dumps()
yöntemini kullanarak değiştirilmiş sözlüğü yeni bir JSON dizesi json_str2
.
json_str2 = json.dumps(py_dict) print(json_str2) # Output {"books": [{"title": "The Wind in the Willows", "author": "Kenneth Grahame", "year": "1908"}, {"title": "To the Lighthouse", "author": "Virginia Woolf", "year": "1927"}], "movies": [{"title": "The Imitation Game", "year": "2014", "lang": "en", "watched": true}]}
Yukarıdaki örnekte görebileceğiniz gibi, çıktı JSON dizesinin uygun biçimlendirme olmadan okunması zordur. Girinti eklemek için isteğe bağlı parametre indent
kullanabilirsiniz.
Bunu, aşağıda gösterildiği gibi indent
2 gibi bir tam sayıya ayarlayarak yapabilirsiniz:
json_str2 = json.dumps(py_dict, indent = 2) print(json_str2) # Output { "books": [ { "title": "The Wind in the Willows", "author": "Kenneth Grahame", "year": "1908" }, { "title": "To the Lighthouse", "author": "Virginia Woolf", "year": "1927" } ], "movies": [ { "title": "The Imitation Game", "year": "2014", "lang": "en", "watched": true } ] }
Çıktının girinti ile nasıl biçimlendirildiğini gözlemleyin ve takip etmesi kolay.

Not : Anahtarların alfabetik sıraya göre sıralanmasını istiyorsanız,
sort_keys
parametresiniTrue
olarak ayarlayabilirsiniz.
Aşağıdaki kod parçacığında da görebileceğiniz gibi, tuşlar artık alfabetik sıraya göre sıralanmıştır.
json_str2 = json.dumps(py_dict, indent = 2, sort_keys=True) print(json_str2) # Output { "books": [ { "author": "Kenneth Grahame", "title": "The Wind in the Willows", "year": "1908" }, { "author": "Virginia Woolf", "title": "To the Lighthouse", "year": "1927" } ], "movies": [ { "lang": "en", "title": "The Imitation Game", "watched": true, "year": "2014" } ]
Ve tuşlar artık alfabetik sırayla görünür: "author"
, "title"
ve "year"
.
Şimdiye kadar Python'da JSON dizeleriyle nasıl çalışılacağını öğrendiniz. Sonraki bölümde, JSON dosyalarıyla nasıl çalışacağınızı öğreneceksiniz.
Python'da JSON Dosyası Nasıl Okunur
Python'da bir JSON dosyasını okumak için aşağıdaki sözdizimini kullanın:
json.load(<json-file>) # where <json-file> is any valid JSON file.
load()
yöntemini değil,loads()
() yöntemini nasıl kullandığımıza dikkat edin.loads()
bir JSON dizesi yüklerkenload()
bir JSON dosyası yükler.
Python'da dosyalarla çalışırken bağlam yöneticilerini kullanmayı düşünmelisiniz. Ayrıca, bağlam yöneticisini kullanmadan dosyaları aşağıdaki gibi okumayı deneyebilirsiniz:
my_file = open('students.json','r') contents = my_file.read() print(contents) file.close()
Dosyayı kapatmazsanız, potansiyel bir kaynak israfı olabilir.
Ancak bağlam yöneticileriyle çalışırken, dosya işlemleri tamamlandıktan sonra dosyalar otomatik olarak kapatılır.
Dosyaları okumak için aşağıda gösterildiği gibi bağlam yöneticisini kullanabilirsiniz:
with open('students.json','r') as file: data = json.load(file) print(data) # Output {'students': [{'roll_num': 'cs27', 'name': 'Anna', 'course': 'CS'}, {'roll_num': 'ep30', 'name': 'Kate', 'course': 'PHY'}]}
Bir dosyadan okurken, modu yukarıdaki kodda 'r'
ile gösterilen read olarak belirtin.
Not : Geçerli dizinde kolayca gezinmek için lütfen aşağıdaki resimde gösterildiği gibi JSON dosyasının
main.py
ile aynı klasörde olduğundan emin olun. JSON dosyanız farklı bir klasördeyse, dosyanın yolunu belirttiğinizden emin olun.

Sonraki bölümde, bir JSON dosyasına nasıl yazılacağını öğreneceksiniz.
Python'da JSON Dosyasına Nasıl Yazılır
Mevcut bir JSON dosyasına yazmak veya yeni bir JSON dosyası oluşturmak için, gösterildiği gibi dump()
yöntemini kullanın:
json.dump(<dict_obj>,<json_file>) # where <dict_obj> is a Python dictionary # and <json_file> is the JSON file
Bu nedenle, yukarıdaki sözdizimi <dict_obj> sözlüğünü <dict_obj>
JSON dosyasına <json_file>
.
Önceki bölümde py_dict
vardı. Şimdi bunu yeni bir JSON dosyasına dökelim. Ve adını new_file.json
koyalım.
Aşağıdaki kod hücresi, dump()
işlevini nasıl kullanabileceğinizi gösterir:
with open('new_file.json','w') as file: json.dump(py_dict,file)
Not : Bir dosyayı yazma modunda (
w
) açmak, dosya varsa içeriğin üzerine yazar. Dosya yoksa, dosya oluşturulur.
Yukarıdaki kod hücresini çalıştırdıktan sonra, mevcut çalışma dizininde yeni bir JSON dosyasının oluşturulduğunu göreceksiniz. Ve devam edip JSON dosyasının içeriğini inceleyebilirsiniz.

Dosyalara yazarken temel amaç veri depolamadır. Biçimlendirmeyi korumak isterseniz, indent
ve sort_keys
parametrelerini de kullanabilirsiniz.
Çözüm
Hızlı bir özet yapmanın zamanı geldi.
Bu eğitimde şunları öğrendiniz:
- JSON kullanmanın temelleri,
- sırasıyla JSON dizesi ve JSON dosyalarını okumak için load(
loads()
veload()
yöntemlerinin nasıl kullanılacağı, - Python sözlüklerini sırasıyla JSON dizelerine ve JSON dosyalarına dökmek için
dumps()
vedump()
yöntemlerinin nasıl kullanılacağı.
Umarım bu öğreticiyi faydalı bulmuşsunuzdur. Mutlu öğrenme!
Ayrıştırmak, biçimlendirmek ve doğrulamak için JSON Araçlarına da bakabilirsiniz.