Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Insira a lista Python (JSON ou não) no banco de dados MySQL


Você precisa deixar a biblioteca MySQL fazer o tratamento de parâmetros para você; isso tem o benefício adicional de permitir que o MySQL prepare sua instrução, tornando as inserções repetidas mais rápidas também:
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))

Consulte a especificação da API Python DB 2.0 para (alguns) mais detalhes sobre SQL parametrizado. Os formatos de parâmetro suportados exatos são documentados por adaptador de banco de dados, portanto, verifique isso também. O módulo MySQLdb, por exemplo, imita a sintaxe de formatação de string python e usa %s como marcadores de posição:
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"

Outras opções de parâmetros possíveis são números (:1, :2 , etc.), nomes (:foo, :bar ) ou a outra forma de formatação de string python, especificadores de formato nomeados:(%(foo)s, %(bar)s ).