Mendapatkan Kamus daripada Pertanyaan SQLite
Mendapatkan semula data daripada pangkalan data SQLite melibatkan mendapatkan senarai yang sepadan dengan baris. Walaupun mungkin untuk menentukan nama lajur menggunakan atribut perihalan, menukar hasil menjadi kamus memerlukan usaha tambahan.
Penyelesaian Menggunakan row_factory
Parameter row_factory membenarkan penyesuaian cara baris dikembalikan. Dengan menetapkannya kepada fungsi yang mengambil kursor dan baris sebagai argumen dan mengembalikan kamus, anda boleh mendapatkan kamus dan bukannya senarai.
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"])
Penyelesaian Menggunakan sqlite3.Row
Dokumentasi SQLite mengesyorkan menggunakan jenis sqlite3.Row, yang menyediakan akses berasaskan nama yang cekap kepada lajur. Dengan menetapkan row_factory kepada sqlite3.Row, anda boleh mengindeks dan mengakses lajur mengikut nama.
con = sqlite3.connect(...) con.row_factory = sqlite3.Row # add this row cursor = con.cursor()
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Kamus Dengan Cekap Daripada Senarai daripada Pertanyaan SQLite?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!