Heim >Datenbank >MySQL-Tutorial >Wie kann ich Wörterbücher anstelle von Listen aus SQLite-Abfragen in Python abrufen?
Wörterbücher aus SQLite-Abfragen abrufen
In Python führt das Abrufen von Daten aus einer SQLite-Datenbank normalerweise zu Listen, die Tabellenzeilen darstellen. Während dies für den Zugriff auf Daten praktisch ist, kann es wünschenswert sein, stattdessen Wörterbücher für einen strukturierteren und schlüsselbasierten Zugriff zu erhalten.
Eine Methode, dies zu erreichen, ist das row_factory-Attribut. Indem Sie es auf eine benutzerdefinierte Funktion festlegen, können Sie angeben, wie Zeilen aus einem Ergebnissatz verarbeitet werden sollen. Zum Beispiel:
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("test.sqlite") con.row_factory = dict_factory cur = con.cursor() cur.execute("select * from table") rows = cur.fetchall() print(rows[0]["col1"])
Eine andere Lösung, wie in der SQLite-Dokumentation vorgeschlagen, besteht darin, den optimierten Zeilentyp als row_factory zu verwenden:
con.row_factory = sqlite3.Row cursor = con.cursor() row = cursor.fetchone() print(row["col1"])
Dieser Zeilentyp stellt beides indexbasiert bereit und namenbasierter Zugriff auf Spalten ohne Berücksichtigung der Groß-/Kleinschreibung mit minimalem Speicheraufwand, was es zu einer effizienteren Lösung als benutzerdefinierte wörterbuchbasierte Ansätze macht.
Das obige ist der detaillierte Inhalt vonWie kann ich Wörterbücher anstelle von Listen aus SQLite-Abfragen in Python abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!