Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Verwenden eines Python-Dicts für eine SQL-INSERT-Anweisung

Ich denke, der Kommentar zur Verwendung mit MySQL ist nicht ganz vollständig. MySQLdb führt keine Parameterersetzung in den Spalten durch, nur die Werte (IIUC) - also vielleicht eher wie

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

Sie entkommen jedoch nicht auf den Spalten, also sollten Sie sie zuerst überprüfen ....

Siehe http://mail.python.org/pipermail/tutor/ 2010-Dezember/080701.html für eine vollständigere Lösung