Maison > base de données > tutoriel mysql > le corps du texte

Comment puis-je récupérer les en-têtes de colonnes d'une requête MySQL à l'aide de Python ?

Patricia Arquette
Libérer: 2024-11-06 20:30:03
original
987 Les gens l'ont consulté

How can I retrieve column headers from a MySQL query using Python?

Récupération des informations de colonne à partir des requêtes MySQL

Lors du développement d'une application Python à l'aide de MySQLdb, une tâche courante consiste à exécuter des requêtes SQL et à récupérer le résultat. noms et valeurs de colonnes. Par défaut, Curseur.fetchall() renvoie uniquement les données sans informations sur les colonnes.

Pour obtenir les en-têtes de colonnes, utilisez l'attribut curseur.description. Il fournit un tuple de tuples, où chaque tuple interne contient des informations sur une colonne. Le premier élément de chaque tuple interne est l'en-tête de colonne.

Pour refléter avec précision les colonnes spécifiées par l'utilisateur dans les requêtes SQL, suivez les étapes suivantes :

<code class="python">cursor.execute(sql)
num_fields = len(cursor.description)
field_names = [i[0] for i in cursor.description]</code>
Copier après la connexion

Ce code récupère le nombre de colonnes dans le résultat de la requête et crée une liste d'en-têtes de colonnes à partir de l'attribut curseur.description.

Dans votre exemple Python spécifique, vous pouvez modifier le code pour extraire les noms de colonnes :

<code class="python">import MySQLdb

# Connect to MySQL

db = MySQLdb.connect(...)

# Execute the query

cursor = db.cursor()
cursor.execute("""
select ext,
       sum(size) as totalsize,
       count(*) as filecount
from fileindex
group by ext
order by totalsize desc;
""")

# Get column headers

num_fields = len(cursor.description)
field_names = [i[0] for i in cursor.description]

# Fetch and print the results

while (1):
    row = cursor.fetchone()
    if row == None:
        break
    print(" ".join("{}={}".format(field_names[i], row[i]) for i in range(num_fields)))

cursor.close()
db.close()</code>
Copier après la connexion

Ce code amélioré récupère et imprime désormais correctement les en-têtes de colonnes et les valeurs de données correspondantes pour chaque ligne.

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!

source:php.cn
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