Python Veri Listeleme İşlemi
Merhaba.
Python öğrenmeye yeni başladım.
Python veri listeleme işleminde verileri nasıl alabiliriz.
Php'de olduğu gibi kitaplar["kitap_adi"] şeklinde alabiliyor muyuz?
kitap_id | kitap_adi | kitap_kategorisi |
---|---|---|
1 | Python Kitabı | 1 |
2 | Php Kitabı | 1 |
import sqlite3
baglanti = sqlite3.connect("Veriler.db")
kalem = baglanti.cursor()
kitaplar = kalem.execute("SELECT * FROM kitaplar")
for kitaplar in kitaplar.fetchall():
print("Kitap ID : ",kitaplar[0]," | Kitap Adı : ",kitaplar[1]," | Kitap Kategorisi : ",kitaplar[2])
baglanti.commit()
baglanti.close()
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (4)
Araştırmalarım sonunda aşağıdaki şekilde yapılabildiğini öğrendim.
sqlite3.connect() komutundan sonra row_factory = sqlite3.Row yazılıyormuş.
Bu şekilde yaparak yazdırma işleminde sütun ismine göre yani kalem["kalem_adi"] şeklinde veriye ulaşabiliyor.
Anlayabildiğim kadarıyla sütün isimlerini yazarken büyük/küçük harfe duyarlı değil.
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']," | Kitap Kategorisi : ",kitap['kitap_kategorisi'])
Aşağıdaki kod ile de yapılıyormuş ama ben kodu tam olarak çözemedim.
import sqlite3
def dict_factory(cursor, row):
d = {}
for idx, col in enumerate(cursor.description):
d[col[0]] = row[idx]
return d
con = sqlite3.connect(":memory:")
con.row_factory = dict_factory
cur = con.cursor()
cur.execute("select 1 as a")
print cur.fetchone()["a"]
kalem = baglanti.cursor()
yerine
kalem = baglanti.cursor(dictionary=True)
şeklinde kullanırsanız kitaplar[0]
yerine kitaplar['kitap_id']
şeklinde kullanabilirsiniz.