Mysql
 sql >> Base de données >  >> RDS >> Mysql

Utilisation d'un dict Python pour une instruction SQL INSERT

Je pense que le commentaire sur l'utilisation de ceci avec MySQL n'est pas tout à fait complet. MySQLdb ne fait pas de substitution de paramètres dans les colonnes, juste les valeurs (IIUC) - donc peut-être plus comme

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()))

Cependant, vous ne vous échappez pas sur les colonnes, vous voudrez peut-être les vérifier d'abord...

Voir http://mail.python.org/pipermail/tutor/ 2010-décembre/080701.html pour une solution plus complète