Wörterbücher aus SQLite-Abfragen abrufen
Das Abrufen von Daten aus SQLite-Datenbanken umfasst das Abrufen von Listen, die Zeilen entsprechen. Während es möglich ist, die Spaltennamen mithilfe des Beschreibungsattributs zu ermitteln, erfordert die Konvertierung der Ergebnisse in Wörterbücher zusätzlichen Aufwand.
Lösung mit row_factory
Der Parameter row_factory ermöglicht die Anpassung der Art und Weise, wie Zeilen zurückgegeben werden. Indem Sie es auf eine Funktion setzen, die einen Cursor und eine Zeile als Argumente akzeptiert und ein Wörterbuch zurückgibt, können Sie Wörterbücher anstelle von Listen erhalten.
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"])
Lösung mit sqlite3.Row
In der SQLite-Dokumentation wird die Verwendung des Typs sqlite3.Row empfohlen, der einen effizienten namensbasierten Zugriff auf Spalten ermöglicht. Indem Sie row_factory auf sqlite3.Row setzen, können Sie Spalten nach Namen indizieren und darauf zugreifen.
con = sqlite3.connect(...) con.row_factory = sqlite3.Row # add this row cursor = con.cursor()
Das obige ist der detaillierte Inhalt vonWie kann ich Wörterbücher anstelle von Listen effizient aus SQLite-Abfragen abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!