Spalteninformationen aus MySQL-Abfragen abrufen
Bei der Entwicklung einer Python-Anwendung mit MySQLdb besteht eine häufige Aufgabe darin, SQL-Abfragen auszuführen und die Ergebnisse abzurufen Spaltennamen und -werte. Standardmäßig gibt Cursor.fetchall() nur die Daten ohne Spalteninformationen zurück.
Um die Spaltenüberschriften zu erhalten, verwenden Sie das Cursor.description-Attribut. Es stellt ein Tupel von Tupeln bereit, wobei jedes innere Tupel Informationen über eine Spalte enthält. Das erste Element jedes inneren Tupels ist der Spaltenkopf.
Um die vom Benutzer angegebenen Spalten in SQL-Abfragen genau wiederzugeben, berücksichtigen Sie die folgenden Schritte:
<code class="python">cursor.execute(sql) num_fields = len(cursor.description) field_names = [i[0] for i in cursor.description]</code>
Dieser Code ruft die Anzahl von ab Spalten im Abfrageergebnis und erstellt eine Liste von Spaltenüberschriften aus dem Attribut „cursor.description“.
In Ihrem spezifischen Python-Beispiel können Sie den Code ändern, um die Spaltennamen zu extrahieren:
<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>
Dieser erweiterte Code ruft jetzt sowohl die Spaltenüberschriften als auch die entsprechenden Datenwerte für jede Zeile korrekt ab und druckt sie aus.
Das obige ist der detaillierte Inhalt vonWie kann ich mit Python Spaltenüberschriften aus einer MySQL-Abfrage abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!