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.

PYTHON Kodu

import json

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:

PythonJSON
dictObject
listArray
tupleArray
strString
intNumber
floatNumber
Truetrue
Falsefalse
Nonenull
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.:

PYTHON Kodu

json.dumps(x, indent=4)
Çı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))