2017-07-24 1 views
0

Wie kann ich Daten aus MySQL-Abfrage mit Spaltennamen (ich benutze es nur per Index) abrufen. Zum Beispiel ist dies mein Beispielcode:Abrufen von Daten aus MySQL/Python Abfrage mit temporären Spaltennamen nicht Index

query = ('SELECT Column1 as name, Column2 as lastname, Column 3 as othername FROM ' 
     'table WHERE condition = 1 ORDER BY name ASC LIMIT 1') 
cursor.execute(query) # I'll get just 1 result 
results = cursor.fetchall() 

if not results: 
    connection.close() 
    .. 
else: 
    for row in results: 
    var = row[0] # <- Here is the problem, I am using the index to retrieve 
       # the result from query, I wanna to use 'var = row["name"]' instead 
       # but this throw me an error because row must be integer type 
    ... 

Ich hoffe, dass Sie mir helfen können. Danke dir, habe einen guten Tag.

+0

Versuchen [10.6. 4 cursor.MySQLCursorDict Class] (https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursordict.html). – wchiquito

Antwort

0

Hey, um 'row ["name"]' zu verwenden, müssen Sie ein Wörterbuch der Abfrage erstellen. Dies kann durch die Verwendung eines dictcursor ...

Cursor = connection.cursor (pymysql.cursors.DictCursor) cursor.execute (Abfrage)

Hoffnung getan werden, das hilft :)

+0

Oh, ich werde das versuchen. Aber gibt es eine andere Möglichkeit, Daten aus dieser Abfrage mithilfe temporärer Spaltennamen abzurufen? –

Verwandte Themen