Trong quá trình thử nghiệm, tôi nhận thấy câu trả lời đã chọn (chuyển đổi dict thành OrderedDict) không đáng tin cậy trong việc duy trì thứ tự cột kết quả truy vấn.
câu trả lời của @ vaultah trong một câu hỏi tương tự
gợi ý sử dụng pymysql.cursors.DictCursorMixin
:
... để tạo con trỏ ghi nhớ thứ tự cột chính xác:
Sau đó nhận kết quả của bạn như bình thường:
results = cursor.fetchall()
for row in results:
print row # properly ordered columns
Tôi thích cách tiếp cận này hơn vì nó ổn định, yêu cầu ít mã hơn và xử lý thứ tự ở cấp độ thích hợp (khi các cột được đọc).