Lors des tests, j'ai trouvé que la réponse sélectionnée (convertir dict en OrderedDict) n'était pas fiable pour préserver l'ordre des colonnes de résultats de requête.
Réponse de @vaultah à une question similaire
suggère d'utiliser pymysql.cursors.DictCursorMixin
:
...pour créer un curseur qui mémorise l'ordre correct des colonnes :
Ensuite, obtenez vos résultats comme d'habitude :
results = cursor.fetchall()
for row in results:
print row # properly ordered columns
Je préfère cette approche car elle est stable, nécessite moins de code et gère le classement au niveau approprié (au fur et à mesure que les colonnes sont lues).