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

Wie kann ich Wörterbücher anstelle von Listen aus SQLite-Abfragen abrufen?

Susan Sarandon
Freigeben: 2025-01-03 20:33:40
Original
149 Leute haben es durchsucht

How Can I Retrieve Dictionaries Instead of Lists from SQLite Queries?

Wörterbücher aus SQLite-Abfragen abrufen

Das Abrufen von Daten aus einer SQLite-Datenbank führt normalerweise zu einer Liste von Listen, wobei jede innere Liste einer entspricht Zeile in der Datenbank. Obwohl diese Methode funktionsfähig ist, kann sie für den Zugriff auf Daten über den Spaltennamen unpraktisch sein. In diesem Artikel werden alternative Ansätze zum Abrufen von Wörterbüchern aus SQLite-Abfragen untersucht, die eine intuitivere Möglichkeit bieten, mit Daten zu arbeiten.

Row Factory

Mit der Funktion row_factory können Sie angeben, wie Die Ergebniszeilen werden zurückgegeben. Indem Sie es auf dict_factory setzen, können Sie Abfrageergebnisse in Wörterbücher konvertieren, in denen Schlüssel Spaltennamen und Werte Spaltenwerte sind. Hier ist ein 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(":memory:")
con.row_factory = dict_factory
cur = con.cursor()
cur.execute("select 1 as a")
print(cur.fetchone()["a"])
Nach dem Login kopieren

SQLite3.Row

Eine andere Möglichkeit besteht darin, den Typ sqlite3.Row als Zeilenfabrik zu verwenden. Es bietet sowohl indexbasierten als auch namenbasierten Zugriff ohne Berücksichtigung der Groß-/Kleinschreibung auf Spalten mit minimalem Speicheraufwand:

con = sqlite3.connect(...)
con.row_factory = sqlite3.Row  # add this row
cursor = con.cursor()
Nach dem Login kopieren

Mit sqlite3.Row können Sie auf Spaltenwerte entweder nach Index oder nach Namen zugreifen:

row = cursor.fetchone()
value_by_index = row[0]
value_by_name = row["col_name"]
Nach dem Login kopieren

Fazit

Sowohl die Funktion row_factory als auch der Typ sqlite3.Row bieten effektive Möglichkeiten um Wörterbücher aus SQLite-Abfragen abzurufen, was die Arbeit mit Daten nach Spaltennamen erleichtert. Die Wahl zwischen beiden hängt von den spezifischen Anforderungen und Vorlieben ab.

Das obige ist der detaillierte Inhalt vonWie kann ich Wörterbücher anstelle von Listen aus SQLite-Abfragen 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage