Merhabalar, bu bölümde json modülünü şöyle bir inceleyeceğiz.
Bir Karakter Dizisini Dict(Sözlük) ve List(Liste) ye Dönüştürmek
import json
a = """
{
"içecek" : "Ayran",
"yemek" : "Kebab",
"Garnitür": "Çoban salatası"
}
"""
print(type(a))
besinSozlugu = json.loads(a)
print(type(besinSozlugu))
for i in besinSozlugu:
print(i, "--> ", besinSozlugu[i])
b = """
[
"elma",
"ayva",
"kiraz"
]
"""
print(type(b))
meyveListesi = json.loads(b)
print(type(meyveListesi))
for i in meyveListesi:
print(i)
Bir Dict(Sözlük) veya List(Liste) i String(Karakter Dizisi) e Dönüştürmek
import json
a = {
"içecek" : "Ayran",
"yemek" : "Kebab",
"Garnitür": "Çoban salatası"
}
print(type(a))
besinSozlugununStringHali = json.dumps(a)
print(type(besinSozlugununStringHali))
print(besinSozlugununStringHali)
b = [
"elma",
"ayva",
"kiraz"
]
print(type(b))
meyveListesininStringHali = json.dumps(b)
print(type(meyveListesininStringHali))
print(meyveListesininStringHali)
.json Uzantılı Dosyaları Kodlarımda Nasıl Kullanabilirim?
Önce deneme.json adlı bir dosya oluşturup bu dosyaya aşagıdakileri yazalım.
deneme.json
{
"içecek" : "Ayran",
"yemek" : "Kebab",
"Garnitür": "Çoban salatası"
}
Sonra aynı dizinde denemeJson.py adlı dosya oluşturup şunları yazalım.
denemeJson.py
import json
with open("deneme.json") as f:
alinanVeri = f.read()
eldeEdilenVeri = json.loads(alinanVeri)
for i in eldeEdilenVeri:
print(i, "---> ", eldeEdilenVeri)
Gelin Alıştırma Olarak Girdiğiniz Verileri Kaydedip Gösteren Bir Fonksiyon Yazalım
import json
import os
if not os.path.exists("settings.json"):
with open("settings.json", "w") as f:
print("settings.json dosyasını bulamadık.Bu yüzden yenisini oluşturuyorum.")
f.write("{}")
with open("deneme.json") as f:
alinan_veri = f.read()
def ayarlariEldeEt(veri):
eldeEdilenVeri = json.loads(veri)
return eldeEdilenVeri
def ayarlariDegistir(veri, ayarBolumu, yeniDeger):
eldeEdilen = ayarlariEldeEt(veri)
eldeEdilen[ayarBolumu] = yeniDeger
with open("settings.json", "w") as f:
kaydedilecekVeri = json.dumps(eldeEdilen)
f.write(kaydedilecekVeri)
Sonraki yazılarda görüşmek üzere …