Python JSON
JSON (JavaScript Object Notation), veri depolamak ve alışverişi yapmak için yazılan bir sözdizimidir.
JSON, JavaScript nesne gösterimi ile yazılmış bir metindir.
Python'da bulunan
json modülü çağırılarak json biçimli verilerle işlemler yapılabilir.
JSON'u Python'a Dönüştürmek
Bir JSON verisi
json.loads() metodu ile Python'da
dict (sözlük) türü bir nesneye dönüştürülebilir.
PYTHON Kodu
import json
# JSON veri:
x = '{ "name":"John", "age":30, "city":"New York"}'
# x'i çözmek:
y = json.loads(x)
# Sonuç dict olarak çıkar:
print(y["age"])
Python'dan JSON'a Dönüştürmek
Bir Python veri türü,
json.dumps() metodu ile JSON'a dönüştürülebilir.
PYTHON Kodu
import json
# bir Python nesnesi (dict):
x = {
"name": "John",
"age": 30,
"city": "New York"
}
# JSON'a dönüştürme işlemi:
y = json.dumps(x)
# Sonuç JSON olarak döner:
print(y)
Birçok Python nesnesi JSON'a dönüştürülebilir, bunlar:
You can convert Python objects of the following types, into JSON strings:
- dict
- list
- tuple
- string
- int
- float
- True
- False
- None
Test etmek için aşağıdaki örnek kodu çalıştırabilirsiniz:
PYTHON Kodu
import json
print(json.dumps({"name": "John", "age": 30}))
print(json.dumps(["apple", "bananas"]))
print(json.dumps(("apple", "bananas")))
print(json.dumps("hello"))
print(json.dumps(42))
print(json.dumps(31.76))
print(json.dumps(True))
print(json.dumps(False))
print(json.dumps(None))
Dönen değerler aşağıdaki gibi olacaktır:
Python | JSON |
dict | Object |
list | Array |
tuple | Array |
str | String |
int | Number |
float | Number |
True | true |
False | false |
None | null |
Tüm geçerli veri türlerini Python'dan JSON'a dönüştürülebilir:
PYTHON Kodu
import json
x = {
"name": "John",
"age": 30,
"married": True,
"divorced": False,
"children": ("Ann","Billy"),
"pets": None,
"cars": [
{"model": "BMW 230", "mpg": 27.5},
{"model": "Ford Edge", "mpg": 24.1}
]
}
print(json.dumps(x))
Sonucu Biçimlendirmek
Yukarıdaki örneklerde JSON nesnesini yazdırdık. Fakat satırbaşı boşlukları ve girintiler olmadan pek de okunaklı olmadığını fark etmişsinizdir.
json.dumps() metodu okumayı kolaylaştıracak bazı parametreler içerir.
Örneğin,
indent parametresini kullanarak veri gruplarına boşluklar ekleyebiliriz. Buradaki 4 sayısı kaç boşluk bırakılacağını ifade eder.:
Çıkan sonuç virgül ve iki nokta şeklindedir. Siz isterseniz bunları da farklı karakterlerle değiştirebilirsiniz. Aşağıdaki örnekte virgül yerine nokta, iki nokta yerine ise eşittir kullandık:
PYTHON Kodu
json.dumps(x, indent=4, separators=(". ", " = "))
Sonuçları Sıralamak
json.dumps() metodu
sort_keys parametresi kabul eder. Bu parametre True olarak belirtilirse anahtarlar alfabetik bir şekilde yazdırılır.
PYTHON Kodu
import json
x = {
"name": "John",
"age": 30,
"married": True,
"divorced": False,
"children": ("Ann","Billy"),
"pets": None,
"cars": [
{"model": "BMW 230", "mpg": 27.5},
{"model": "Ford Edge", "mpg": 24.1}
]
}
# anahtarları alfabetik olarak sıralamak:
print(json.dumps(x, indent=4, sort_keys=True))