Veritabanından gelen verileri index numarasına göre değil de sütun ismine göre nasıl yazdırabiliriz?
Yani kitaplar[1] şeklinde değil de kitaplar[‘kitap_adi’] şeklinde veriye nasıl ulaşırız?
import sqlite3
baglanti = sqlite3.connect("Veriler.db")
kalem = baglanti.cursor()
kitaplar = kalem.execute("SELECT * FROM kitaplar")
for kitap in kitaplar.fetchall():
# Şu anki yapı
print("Kitap ID : ",kitap[0]," | Kitap Adı : ",kitap[1])
# İstediğim yapı
print("Kitap ID : ",kitap['kitap_id']," | Kitap Adı : ",kitap['kitap_adi'])
con = sqlite3.connect(':memory:')
with con:
cur = con.execute('''SELECT 42 AS "id", 'foo' AS "name"''');
assoc = [{cur.description[c][0]: d for c, d in enumerate(row)} for row in cur.fetchall()]
print(assoc)
Aşağıdaki şekilde de yapılabiliyormuş.
Ama sütun isimlerini yazarken büyük/küçük harf duyarlılığı yok anladığım kadarıyla.
import sqlite3
baglanti = sqlite3.connect("Veriler.db")
baglanti.row_factory = sqlite3.Row
kalem = baglanti.cursor()
kitaplar = kalem.execute("SELECT * FROM kitaplar")
for kitap in kitaplar.fetchall():
print("Kitap ID : ",kitap['kitap_id']," | Kitap Adı : ",kitap['kitap_adi']])