Při testování jsem zjistil, že vybraná odpověď (převést diktát na OrderedDict) je nespolehlivá při zachování pořadí sloupců výsledků dotazu.
odpověď @vaultah v podobné otázce
navrhuje použít pymysql.cursors.DictCursorMixin
:
...pro vytvoření kurzoru, který si pamatuje správné pořadí sloupců:
Pak získejte výsledky jako obvykle:
results = cursor.fetchall()
for row in results:
print row # properly ordered columns
Tento přístup preferuji lépe, protože je stabilní, vyžaduje méně kódu a zvládá řazení na příslušné úrovni (při čtení sloupců).