Eu acho que o comentário sobre como usar isso com o MySQL não está muito completo. MySQLdb não faz substituição de parâmetros nas colunas, apenas os valores (IIUC) - então talvez mais como
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()))
Você não está escapando nas colunas, então você pode querer verificá-las primeiro ....
Consulte http://mail.python.org/pipermail/tutor/ 2010-dezembro/080701.html para uma solução mais completa