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>
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>
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!