Comment récupérer des dictionnaires à partir de requêtes SQLite
Lors de l'exécution de requêtes SQLite, vous pouvez rencontrer des situations dans lesquelles vous devez plutôt obtenir des données au format dictionnaire de listes. Cet article vous proposera plusieurs solutions pour y parvenir.
Utilisation de row_factory
Le paramètre row_factory dans la connexion SQLite permet de spécifier comment les lignes sont renvoyées. En le définissant sur une fonction personnalisée, vous pouvez convertir des tuples en dictionnaires :
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
En utilisant sqlite3.Row
Vous pouvez également définir row_factory sur sqlite3.Row , qui fournit un moyen optimisé d'accéder aux colonnes à la fois par index et 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
Implémentation personnalisée
Si aucune des solutions ci-dessus ne répond à vos besoins, vous pouvez créer votre propre implémentation personnalisée. Cependant, cette approche n'est généralement pas recommandée en raison de problèmes de performances potentiels par rapport aux solutions fournies.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!