Heim >Datenbank >MySQL-Tutorial >Wie kann ich Wörterbuchdaten aus SQLite-Abfragen abrufen?

Wie kann ich Wörterbuchdaten aus SQLite-Abfragen abrufen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-04 08:29:36198Durchsuche

How Can I Retrieve Dictionary Data from SQLite Queries?

So rufen Sie Wörterbücher aus SQLite-Abfragen ab

Beim Durchführen von SQLite-Abfragen kann es vorkommen, dass Sie Daten stattdessen im Wörterbuchformat abrufen müssen von Listen. In diesem Artikel finden Sie mehrere Lösungen, um dies zu erreichen.

Verwendung von row_factory

Mit dem Parameter row_factory in der SQLite-Verbindung können Sie angeben, wie Zeilen zurückgegeben werden. Indem Sie es auf eine benutzerdefinierte Funktion festlegen, können Sie Tupel in Wörterbücher konvertieren:

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"])  # Output: 1

Verwenden von sqlite3.Row

Alternativ können Sie row_factory auf sqlite3.Row setzen , was eine optimierte Möglichkeit bietet, auf Spalten sowohl über den Index als auch über den Index zuzugreifen Name:

con = sqlite3.connect(...)
con.row_factory = sqlite3.Row  # Set row_factory to sqlite3.Row
cursor = con.cursor()
row = cursor.fetchone()
print(row["col1"])  # Access columns by name

Benutzerdefinierte Implementierung

Wenn keine der oben genannten Lösungen Ihren Anforderungen entspricht, können Sie Ihre eigene benutzerdefinierte Implementierung erstellen. Dieser Ansatz wird jedoch im Allgemeinen aufgrund potenzieller Leistungsprobleme im Vergleich zu den bereitgestellten Lösungen nicht empfohlen.

Das obige ist der detaillierte Inhalt vonWie kann ich Wörterbuchdaten aus SQLite-Abfragen abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn