Özet - CSV ve JSON
- Python kursu
- Orta seviye
- Ders 75/116
- 5 dk
csv.DictReader ve json.dump'u birleştirerek bir ayar dosyası yazarsın.
Özet - CSV ve yapısal veri
Bu grupta CSV okuma/yazma ve yapısal veri biçimi işlemlerini öğrendin. CSV için csv.reader satırları liste, csv.DictReader sözlük olarak verir. Yazarken csv.writer ve writerow/writerows kullanılır.
Yapısal veri biçiminde dosya için json.load/json.dump, dize için json.loads/json.dumps kullanılır. Türkçe karakterler için ensure_ascii=False, okunaklı girinti için indent=2 parametreleri kullanışlıdır. Dosya açarken her zaman encoding="utf-8" önerilir.
Mini görev: yapıyı dosyaya yaz
Özet görevinde yapısal veriyi dosyaya yazıp geri yüklersin. Bir sözlük içinde bir liste tutarsın; bu, gerçek uygulamalarda sık görülen bir desendir. json.dump ile yazıp json.load ile okursun.
Görev, hem okuma-yazma döngüsünü hem de Türkçe karakter korumasını bir arada gösterir. Çıktı, geri yüklenen listedeki öğe sayısıdır; bu, verinin kayıpsız taşındığını kanıtlar.
Uygulama Liste içeren sözlüğü yaz ve oku
Önce import json satırını ekle. data = {"name": "Ayşe", "friends": ["Ali", "Veli"]} ile bir sözlük tanımla. with open("social.txt", "w", encoding="utf-8") as f: json.dump(data, f, ensure_ascii=False, indent=2) ile yaz. Sonra with open("social.txt", "r", encoding="utf-8") as f: loaded = json.load(f) ile geri oku. print(len(loaded["friends"])) ile arkadaş sayısını yazdır.
Başlangıç kodu
import json
# Veri sözlüğünü tanımla (içinde liste olsun)
# Dosyaya yaz, geri oku, liste uzunluğunu yazdırÖrnek çözüm
import json
# Veri sözlüğünü tanımla (içinde liste olsun)
data = {"name": "Ayşe", "friends": ["Ali", "Veli"]}
# Dosyaya yaz, geri oku, liste uzunluğunu yazdır
with open("social.txt", "w", encoding="utf-8") as f:
json.dump(data, f, ensure_ascii=False, indent=2)
with open("social.txt", "r", encoding="utf-8") as f:
loaded = json.load(f)
print(len(loaded["friends"]))Beklenen çıktı
2
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Sözlük olarak CSV okumak için hangi metot?
- csv.writer
- csv.reader
- csv.DictReader Doğru cevap
- csv.DictWriter
Açıklama: Seçim yanlış. Doğru cevap: csv.DictReader. Sözlük olarak okuyan metot budur.
2 json.dump dosyaya yazar
import json
data = {"ad": "Veli"}
with open("v.txt", "w", encoding="utf-8") as f:
json.____(data, f, ensure_ascii=False)
import json
data = {"ad": "Veli"}
with open("v.txt", "w", encoding="utf-8") as f:
json.dump(data, f, ensure_ascii=False)
Açıklama: Dosyaya yazan metot dump'tır (s'siz).
3 Modüllerin kullanımını eşleştir
| Kavram | Anlamı |
|---|---|
csv.reader |
CSV satırı liste |
csv.DictReader |
CSV satırı sözlük |
json.load |
Dosyadan okuma |
json.dumps |
Dizeye yazma |