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

Insérer la liste Python (JSON ou autre) dans la base de données MySQL

Vous devez laisser la bibliothèque MySQL gérer les paramètres pour vous ; cela a l'avantage supplémentaire de laisser MySQL préparer votre relevé, ce qui accélère également les insertions répétées :

cur = con.cursor()    
sql_input = "INSERT INTO 963168MBV17A(Rev, Part, SN, Iterations, Date, Time, Upstream, Downstream, ResultList, Result, Report) VALUES('503', '100-120970-0031', '1594539', ?, ?, ?, ?, ?, 0, P, 0"
cur.execute(sql_input, (export_date, export_time, export_numtests, export_upstream, export_downstream))

Voir la spec Python DB API 2.0 pour (quelques) plus de détails sur le SQL paramétré. Les formats de paramètres exacts pris en charge sont documentés par adaptateur de base de données, alors vérifiez-le également. Le module MySQLdb, par exemple, imite la syntaxe de formatage de chaîne python et utilise %s comme espaces réservés :

sql_input = "INSERT INTO 963168MBV17A(Rev, Part, SN, Iterations, Date, Time, Upstream, Downstream, ResultList, Result, Report) VALUES('503', '100-120970-0031', '1594539', %s, %s, %s, %s, %s, 0, P, 0"

Les autres options de paramètre possibles sont les nombres (:1, :2 , etc.), noms (:foo, :bar ) ou l'autre forme de formatage de chaîne python, nommés spécificateurs de format :(%(foo)s, %(bar)s ).