JSON (JavaScript Object Notation), açılımında da görüleceği gibi Javascript nesnesi gösterimidir. API ile bir yerden veri çektiğinizde, çektiğiniz verileri Python ile kullanabilirsiniz. JSON verisinin hangi programlama dili ile üretildiğinin önemi yoktur, sonunda aşağıdaki gibi bir yapının oluşması yeterlidir. Böylece programlama dilllerinin birbirleri ile iletişimi de sağlanmış olur. Bir JSON verisi örneğini aşağıda bulunmaktadır.
{
"adi": "Enes",
"soyadi": "ASAN",
"bildigiDiller": ["Python", "C#", "Java", "PHP"],
"yas": 32,
"yapayZekaKonulari": [
{
"konuAdi": "BigData",
"yil":3
},
{
"konuAdi": "NLP",
"yil": 5
}
]
}
Python'da JSON verilerini kullanabilmek için json kütüphanesinin içe aktarılması gerekmektedir.
import json
Json kütüphanesinin içersindeki özelliklere bakılacak olursa;
print(dir(json))
Çıktı:
['JSONDecodeError', 'JSONDecoder', 'JSONEncoder', '__all__', '__author__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '__version__', '_default_decoder', '_default_encoder', 'codecs', 'decoder', 'detect_encoding', 'dump', 'dumps', 'encoder', 'load', 'loads', 'scanner']
JSON verisinin değişkenlerinin Python'da karşılığı aşağıda sunulmuştur.
Python | JSON |
dict | object |
list,tuple | array |
str | string |
int,long,float | number |
True | true |
False | false |
None | null |
JSON verisini Python ile ".json" uzantılı olarak kaydedebiliriz veya string veya sözlük formatına çevirebiliriz.
data={
"adi": "Enes",
"soyadi": "ASAN",
"bildigiDiller": ["Python", "C#", "Java", "PHP"],
"yas": 32,
"yapayZekaKonulari": [
{
"konuAdi": "BigData",
"yil":3
},
{
"konuAdi": "NLP",
"yil": 5
}
]
}
JSON verilerini dosya olarak kaydetme ve okuma
#kaydetme
with open("data.json","w") as write_file:
json.dump(data,write_file)
#okuma
with open("data.json") as f:
data=json.load(f)
print(json.dumps(data,indent=4))
print("Tipi:{}".format(type(data)))
Çıktı:
{ "adi": "Enes", "soyadi": "ASAN", "bildigiDiller": [ "Python", "C#", "Java", "PHP" ], "yas": 32, "yapayZekaKonulari": [ { "konuAdi": "BigData", "yil": 3 }, { "konuAdi": "NLP", "yil": 5 } ] } Tipi:<class 'dict'>
JSON verilerini string olarak kaydetme
json_string=json.dumps(data,indent=4)
print(json_string)
print("Tipi:{}".format(type(json_string)))
Çıktı:
{ "adi": "Enes", "soyadi": "ASAN", "bildigiDiller": [ "Python", "C#", "Java", "PHP" ], "yas": 32, "yapayZekaKonulari": [ { "konuAdi": "BigData", "yil": 3 }, { "konuAdi": "NLP", "yil": 5 } ] } Tipi:<class 'str'>
JSON verilerini sözlük olarak kaydetme
json_string=json.dumps(data,indent=4)
data_dict=json.loads(json_string)
print(data_dict)
print("adı:{}".format(data_dict["adi"]))
print("soyadı:{}".format(data_dict["soyadi"]))
print("Tipi:{}".format(type(data_dict)))
Çıktı:
{'adi': 'Enes', 'soyadi': 'ASAN', 'bildigiDiller': ['Python', 'C#', 'Java', 'PHP'], 'yas': 32, 'yapayZekaKonulari': [{'konuAdi': 'BigData', 'yil': 3}, {'konuAdi': 'NLP', 'yil': 5}]} adı:Enes soyadı:ASAN Tipi:<class 'dict'>
Sözlük verilerini JSON formata çevirme:Verinin bir string ifadeye dönüşmüş olması gerekmektedir.
myDict={"adi":"Enes","Email":"e@gmail.com","bildigiDiller": ["Python", "C#", "Java", "PHP"]}
myJson = json.dumps(myDict,indent=4)
print(myJson)
print(type(myJson))
Çıktı:
{ "adi": "Enes", "Email": "e@gmail.com", "bildigiDiller": [ "Python", "C#", "Java", "PHP" ] } <class 'str'>