Durante i test ho riscontrato che la risposta selezionata (converti dict in OrderedDict) non è affidabile nel preservare l'ordine delle colonne dei risultati della query.
La risposta di @vaultah in una domanda simile
suggerisce di usare pymysql.cursors.DictCursorMixin
:
...per creare un cursore che ricordi l'ordine corretto delle colonne:
Quindi ottieni i risultati normalmente:
results = cursor.fetchall()
for row in results:
print row # properly ordered columns
Preferisco meglio questo approccio perché è stabile, richiede meno codice e gestisce l'ordinamento al livello appropriato (man mano che le colonne vengono lette).