v2.5.2
Giriş yap

Python Veri Listeleme İşlemi

coder
578 defa görüntülendi

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_idkitap_adikitap_kategorisi
1Python Kitabı1
2Php 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()
    
Cevap yaz
Cevaplar (4)
coder
898 gün önce

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"]
admin
898 gün önce

sqlalchemy kullanirsan istedigin sekilde alabilirsin.

coder
898 gün önce

Dediğiniz şekilde yaptım ancak aşağıdaki hatayı veriyor.

TypeError: 'dictionary' is an invalid keyword argument for cursor()
tayfunerbilen
898 gün önce
kalem = baglanti.cursor()

yerine

kalem = baglanti.cursor(dictionary=True)

şeklinde kullanırsanız kitaplar[0] yerine kitaplar['kitap_id'] şeklinde kullanabilirsiniz.