Heim > Datenbank > MySQL-Tutorial > Wie kann ich Wörterbücher aus SQLite-Abfragen effizient abrufen?

Wie kann ich Wörterbücher aus SQLite-Abfragen effizient abrufen?

DDD
Freigeben: 2025-01-03 22:57:43
Original
1047 Leute haben es durchsucht

How to Efficiently Retrieve Dictionaries from SQLite Queries?

Wörterbücher aus SQLite-Abfragen abrufen

In Ihrem bereitgestellten Codeausschnitt iterieren Sie derzeit über die Rohtupel, die von der SQLite-Abfrage zurückgegeben wurden:

db = sqlite.connect("test.sqlite")
res = db.execute("select * from table")
Nach dem Login kopieren

Dies gibt eine Liste von Tupeln für jede Zeile in der Tabelle zurück, was dies erforderlich macht Extrahieren Sie die Spaltennamen manuell und erstellen Sie Wörterbücher. Allerdings bietet SQLite zwei Methoden zum direkten Abrufen von Wörterbüchern aus Abfragen:

1. row_factory

Mit der Option row_factory können Sie eine benutzerdefinierte Funktion angeben, die zum Erstellen eines Objekts aus jeder Zeile verwendet wird. Beispielsweise gibt die folgende Funktion ein Wörterbuch zurück:

def dict_factory(cursor, row):
    d = {}
    for idx, col in enumerate(cursor.description):
        d[col[0]] = row[idx]
    return d
Nach dem Login kopieren

Durch Festlegen der Option row_factory auf diese Funktion ist jede von der Abfrage zurückgegebene Zeile ein Wörterbuch:

con = sqlite3.connect(":memory:")
con.row_factory = dict_factory
cur = con.cursor()
cur.execute("select 1 as a")
result = cur.fetchone()  # Returns {'a': 1}
Nach dem Login kopieren

2. sqlite3.Row

Alternativ können Sie row_factory auf sqlite3.Row setzen, was sowohl indexbasierten als auch namensbasierten Zugriff auf Spalten ohne zusätzlichen Speicheraufwand ermöglicht:

con = sqlite3.connect(...)
con.row_factory = sqlite3.Row
cursor = con.cursor()
result = cursor.fetchone()  # Returns Row object with attribute-like access
Nach dem Login kopieren

Durch die Verwendung einer dieser Methoden können Sie ganz einfach Wörterbücher oder Objekte, auf die über Attribute zugegriffen werden kann, aus SQLite-Abfragen abrufen, sodass keine manuelle Wörterbucherstellung erforderlich ist.

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

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage