Bu derste Python ile JSON kullanımını öğreneceğiz. Öncelikli olarak JSON ne demektir açıklayalım.
JSON (JavaScript Object Notation – JavaScript Nesne Notasyonu) insanlar için okunabilir olan bilgi saklama ve alışveriş formatıdır.
JSON, veri depolamak ve değiştirmek için kullanılan bir sözdizimidir.
JSON, JavaScript nesne gösterimi ile yazılmış bir metindir.
Python, JSON verileriyle çalışmak için kullanılabilen json adlı yerleşik bir pakete sahiptir.
Python programlama dilinde JSON modülünü kullanabilmek için aşağıdaki satırı eklememiz gerekir.
1 2 3 |
import json |
Parse JSON – JSON’den Python’a dönüştürme
Bir JSON dizeniz varsa, json.loads () metodunu kullanarak dizeyi ayrıştırabilirsiniz.
Not: Sonuç bir Python sözlüğü (dictionary ) olacaktır.
Örnek:
1 2 3 4 5 6 7 8 9 10 11 12 |
import json # JSON Verisi: x = '{ "ad":"Recep", "yas":30, "sehir":"Bursa"}' # parse x: y = json.loads(x) # Sonuç: print(y["sehir"]) |
Kodlarımızı yazıp çalıştırdığımızda ekran çıktısı olarak “Bursa” görünecektir
.
Python -> JSON Dönüştürme
Şimdide yukarıdaki örneğin tesini yapalım. Yani Python sözlüğü oluşturarak veriyi json biçimine dönüştürelim.
Örnek:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import json # Python Objesi(dictionary): x = { "ad": "Recep", "yas": 30, "city": "Bursa" } # JSON' a çevir: y = json.dumps(x) # JSON string: print(y) |
Ekran Çıktısı:
Aşağıdaki türlerdeki Python nesnelerini JSON dizelerine dönüştürebilirsiniz:
- dict
- list
- tuple
- string
- int
- float
- True
- False
- None
Şimdiki örneğimizde yukarıdaki veri türlerinin JSON verisi haline getirilmesi için kullanımı toplu bir halde görelim.
Örnek:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import json print(json.dumps({"ad": "Recep", "yas": 30})) print(json.dumps(["Elma", "Armut"])) print(json.dumps(("Elma", "Armut"))) print(json.dumps("Python Dersleri")) print(json.dumps(42)) print(json.dumps(31.76)) print(json.dumps(True)) print(json.dumps(False)) print(json.dumps(None)) |
Ekran Çıktısı:
Python’dan JSON’a dönüştürdüğünüzde, Python nesneleri JSON (JavaScript) eşdeğerine dönüştürülür:
Python | JSON |
---|---|
dict | Object |
list | Array |
tuple | Array |
str | String |
int | Number |
float | Number |
True | true |
False | false |
None | null |
Örnek:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
import json x = { "ad": "Recep", "yas": 30, "evlenmis": True, "bosanmis": False, "cocuk": ("Ali","Ayse"), "evcilHayvan": None, "araba": [ {"model": "BMW 230", "mpg": 27.5}, {"model": "Ford Fiesta", "mpg": 24.1} ] } # convert into JSON: y = json.dumps(x) # the result is a JSON string: print(y) |
Ekran Çıktısı:
1 2 3 4 |
{"ad": "Recep", "yas": 30, "evlenmis": true, "bosanmis": false, "cocuk": ["Ali", "Ayse"], "evcilHayvan": null, "araba": [{"model": "BMW 230", "mpg": 27.5}, {"model": "Ford Fiesta", "mpg": 24.1}]} |
Sonucu Biçimlendirme
Yukarıdaki örnek bir JSON dizesi yazdırır, ancak girintiler ve satır kesmeleri olmadan okumak çok kolay değildir.
Json.dumps () metodunun sonucu okumayı kolaylaştırmak için parametreleri vardır:
Örnek:
Girinti sayısını tanımlamak için indent parametresini kullanılır:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import json x = { "ad": "Recep", "yas": 30, "evlenmis": True, "bosanmis": False, "cocuk": ("Ali","Ayse"), "evcilHayvan": None, "araba": [ {"model": "BMW 230", "mpg": 27.5}, {"model": "Ford Fiesta", "mpg": 24.1} ] } print(json.dumps(x, indent=4, separators=(". ", " = "))) |
Ekran Çıktısı:
Örnek 2:
Varsayılan ayırıcıyı değiştirmek için separators parametresini kullanın:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import json x = { "ad": "Recep", "yas": 30, "evlenmis": True, "bosanmis": False, "cocuk": ("Ali","Ayse"), "evcilHayvan": None, "araba": [ {"model": "BMW 230", "mpg": 27.5}, {"model": "Ford Fiesta", "mpg": 24.1} ] } print(json.dumps(x, indent=4, separators=(". ", " = "))) |
Ekran Çıktısı:
Sonucu Sıralama
Sonucun sıralanıp sıralanmayacağını belirtmek için sort_keys parametresini kullanın:
Örnek:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import json x = { "ad": "Recep", "yas": 30, "evlenmis": True, "bosanmis": False, "cocuk": ("Ali","Ayse"), "evcilHayvan": None, "araba": [ {"model": "BMW 230", "mpg": 27.5}, {"model": "Ford Fiesta", "mpg": 24.1} ] } print(json.dumps(x, indent=4, sort_keys=True)) |
Ekran Çıktısı:
[…] Python JSON […]