CodeBlanks Logo Icon CodeBlanks

DictReader ve DictWriter

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

main.py
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

main.py
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

Soru
writer = csv.DictWriter(f, ____=["ad", "yas"])
Cevap
writer = csv.DictWriter(f, fieldnames=["ad", "yas"])

Açıklama: fieldnames sütun adlarını ve sırasını belirler.

Orta seviye bölümündeki tüm dersler