При тестване открих, че избраният отговор (конвертиране на dict в OrderedDict) е ненадежден при запазване на реда на колоните с резултати от заявката.
Отговорът на @vaultah в подобен въпрос
предлага използването на pymysql.cursors.DictCursorMixin
:
...за да създадете курсор, който запомня правилния ред на колоните:
След това получете резултатите си както обикновено:
results = cursor.fetchall()
for row in results:
print row # properly ordered columns
Предпочитам този подход по-добре, защото е стабилен, изисква по-малко код и обработва подреждането на подходящото ниво (докато се четат колоните).