Tôi nghĩ rằng nhận xét về việc sử dụng điều này với MySQL không hoàn toàn đầy đủ. MySQLdb không thực hiện thay thế tham số trong các cột, chỉ thay thế các giá trị (IIUC) - vì vậy có thể giống hơn
placeholders = ', '.join(['%s'] * len(myDict))
columns = ', '.join(myDict.keys())
sql = "INSERT INTO %s ( %s ) VALUES ( %s )" % (table, columns, placeholders)
# valid in Python 2
cursor.execute(sql, myDict.values())
# valid in Python 3
cursor.execute(sql, list(myDict.values()))
Tuy nhiên, bạn sẽ không thoát trên các cột, vì vậy bạn có thể muốn kiểm tra chúng trước ....
Xem http://mail.python.org/pipermail/tutor/ 2010-12 / 080701.html để có giải pháp hoàn thiện hơn