DictReader ve DictWriter
- Python kursu
- Orta seviye
- Ders 72/116
- 5 dk
csv.DictReader ve DictWriter ile sözlük olarak CSV öğrenirsin.
DictReader ile sözlük okuma
csv.DictReader(f) her satırı bir sözlük (dict) olarak verir. Dosyadaki başlık satırı anahtar olur; veri satırları değer olarak gelir. row["ad"] gibi anahtarla erişirsin; sütun sırasını hatırlamak zorunda kalmazsın.
Bu yöntem, başlık adlarının kodda anlamlı olduğu verilerde çok okunaklıdır. Örneğin uye["eposta"] demek, row[3] demekten daha anlamlıdır. Sözlük yapısı sayesinde sütun eklenip çıkarılması da kodu az etkiler.
DictWriter ile sözlük yazma
csv.DictWriter(f, fieldnames=["ad", "yas"]) ile bir yazıcı oluşturursun. writer.writeheader() başlık satırını yazar; writer.writerow({"ad": "Ayşe", "yas": 30}) ise bir veri satırını sözlükten üretir.
fieldnames listesi sütun sırasını belirler; sözlükte anahtarlar farklı sırada olsa bile çıktı tutarlı olur. Bu özellik, veriyi kullanıcıdan topladığında ve sütun sırasının sabit kalması gerektiğinde kullanışlıdır.
Uygulama DictReader ile ad sütununu oku
Önce import csv satırını ekle. with open("kisiler.csv", "w", encoding="utf-8", newline="") as f: bloğu içinde f.write("name,age\n"), f.write("Ayşe,30\n") ve f.write("Ali,25\n") ile üç satır yaz. Sonra with open("kisiler.csv", "r", encoding="utf-8", newline="") as f: bloğu içinde reader = csv.DictReader(f) ve rows = list(reader) ile satırları al. print(rows[1]["name"]) ile ikinci satırın adını yazdır.
Başlangıç kodu
import csv
# CSV dosyasına başlık + iki satır yaz
# DictReader ile oku, ikinci satırın adını yazdırÖrnek çözüm
import csv
# CSV dosyasına başlık + iki satır yaz
with open("kisiler.csv", "w", encoding="utf-8", newline="") as f:
f.write("name,age\n")
f.write("Ayşe,30\n")
f.write("Ali,25\n")
# DictReader ile oku, ikinci satırın adını yazdır
with open("kisiler.csv", "r", encoding="utf-8", newline="") as f:
reader = csv.DictReader(f)
rows = list(reader)
print(rows[1]["name"])Beklenen çıktı
Ali
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 DictReader parçalarını eşleştir
| Kavram | Anlamı |
|---|---|
DictReader |
Sözlük olarak okur |
row |
Sözlük satırı |
header |
Anahtar satırı |
key |
Sözlük anahtarı |
2 DictReader bir satırı ne olarak verir?
- Dize olarak
- Sözlük olarak Doğru cevap
- Liste olarak
- Demet olarak
Açıklama: DictReader her satırı sözlük olarak verir; anahtarlar başlıktan gelir.
3 DictWriter fieldnames tamamla
writer = csv.DictWriter(f, ____=["ad", "yas"])
writer = csv.DictWriter(f, fieldnames=["ad", "yas"])
Açıklama: fieldnames sütun adlarını ve sırasını belirler.