Maison > base de données > tutoriel mysql > Comment puis-je récupérer des données de dictionnaire à partir de requêtes SQLite ?

Comment puis-je récupérer des données de dictionnaire à partir de requêtes SQLite ?

Mary-Kate Olsen
Libérer: 2025-01-04 08:29:36
original
193 Les gens l'ont consulté

How Can I Retrieve Dictionary Data from SQLite Queries?

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
Copier après la connexion

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
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal