Não há necessidade de usar um gerador para fazer um loop sobre
mydata
. Basta passar mydata
diretamente:cur.executemany(sql, mydata)
O adaptador de banco de dados fará um loop sobre
mydata
para você e uma expressão geradora apenas insere um loop extra desnecessário. Se você não receber nenhuma mensagem de erro, mas também não houver alterações, verifique o seguinte:
-
Certifique-se de confirmar a transação; executecon.commit()
após o.executemany()
ligar.
-
Verificação tripla quemydata
não está vazio.
O adaptador de banco de dados manipulará corretamente os valores flutuantes para você; se uma coluna estiver marcada como
FLOAT NOT NULL
e você passa um valor flutuante do Python para essa coluna, Things Just Work. É para isso que servem os parâmetros SQL, manipulando corretamente a citação de diferentes tipos de dados.