Elimdeki degiskenleri bir dosyaya kaydetmek, daha sonra okumak istiyorum. Ne yapmaliyim? Database mi kullanmaliyim?
Verileri basit objeler haline getirirseniz pickle
veya json
kullanabilirsiniz:
import json
import pickle
## Veri:
insanlar = ["ahmet", "mehmet"]
sayilar = [42, 43]
bir_takim_tablo = [
{
'sayi': 3,
'yazi': "foo",
'guzel': False,
}, {
'sayi': 4,
'yazi': "bar",
'guzel': True,
}
]
## Yazma:
veri_seti = { 'insanlar': insanlar, 'sayilar': sayilar,
'tablo': bir_takim_tablo }
with open("veri.pickle", 'wb') as f:
pickle.dump(veri_seti, f)
with open("veri.json", 'w', encoding='utf-8') as f:
json.dump(veri_seti, f)
## Okuma:
with open("veri.pickle", 'rb') as f:
okunan_veri = pickle.load(f)
sayilar = okunan_veri['sayilar']
print(sayilar)
# [42, 43]
with open("veri.json", 'r', encoding='utf-8') as f:
okunan_veri = json.load(f)
okunan_tablo = okunan_veri['tablo']
print(okunan_tablo[0]['guzel'], okunan_tablo[1]['guzel'])
# False True
1 Beğeni
Peki veritabani?
Baska bir cevaptan alinti yapacagim:
Isinizi goruyorsa pickle, JSON, text dosyasi kullanabilirsiniz. Buradaki cogu insan SQL ogrenmek, pratik yapmak, ise girerken “HedeSQL kullandim” diyebilmek icin kullaniyor.
Sunlar RDBMS kullanmak icin iyi sebep:
- Veri hafizaya sigmiyor
- Veriyi uzakta veya baska makinada tutmak istiyoruz
- Verinin semasi (sekli) belli, sapmak istemiyoruz
- Verinin kontrollere ihtiyaci var, bunlari koda yazmak istemiyoruz
- Verinin (kontroller gibi) basit koda ihtiyaci var, her aplikasyona eklemek istemiyoruz
- Veri uzerinde basit olmayan sorgular yapmak istiyoruz
- Veri uzerinde O(n)'den hizli calisan (index’li) sorgular yapmak istiyoruz
- Veri uzerinde kilitler tutmak veya parcalanamayan isler (transaction) yapmak istiyoruz
- Verinin bozulmasini istemiyoruz, dosya sisteminin detaylarini ve garantilerini bilen muhendisimiz yok
Dahasi icin herhangi bir database sisteminin sagladiklari okunabilir. (ACID iyi bir baslangic noktasi.)
Surada da ilgili seyler var ama ayiklamak gerekebilir: Neden MySQL kullanmamaliyim? Yerine ne kullanabilirim? [PostgreSQL]