No es necesario usar un generador para recorrer mydata . Solo pasa mydata directamente:
cur.executemany(sql, mydata)
El adaptador de base de datos recorrerá mydata para usted y una expresión generadora solo inserta un bucle extra innecesario.
Si no recibe ningún mensaje de error pero tampoco hay cambios, verifique lo siguiente:
-
Asegúrese de confirmar la transacción; ejecutar
con.commit()después de.executemany()llamar. -
Control triple que
mydatano está vacío.
El adaptador de la base de datos manejará correctamente los valores flotantes por usted; si una columna está marcada como FLOAT NOT NULL y pasa un valor flotante de Python para esa columna, Things Just Work. Para eso están los parámetros SQL, manejar correctamente las cotizaciones de diferentes tipos de datos.