テストでは、選択した回答(dictをOrderedDictに変換)は、クエリ結果の列の順序を維持する上で信頼できないことがわかりました。
@vaultahの同様の質問への回答
pymysql.cursors.DictCursorMixin
の使用をお勧めします :
...正しい列の順序を記憶するカーソルを作成するには:
次に、通常のように結果を取得します:
results = cursor.fetchall()
for row in results:
print row # properly ordered columns
安定していて、必要なコードが少なく、適切なレベルで順序付けを処理できるため、このアプローチの方が適しています(列が読み取られるとき)。