Det finns inget behov av att använda en generator för att loopa över mydata . Skicka bara in mydata direkt:
cur.executemany(sql, mydata)
Databasadaptern går över mydata för dig och ett generatoruttryck infogar bara en onödig extra loop.
Om du inte får några felmeddelanden men det inte heller finns några ändringar, kontrollera följande:
-
Se till att du genomför transaktionen; kör
con.commit()efter.executemany()ring. -
Trippelkontroll att
mydataär inte tom.
Databasadaptern kommer att hantera flytvärden korrekt åt dig; om en kolumn är markerad som FLOAT NOT NULL och du skickar in ett Python flytvärde för den kolumnen, Things Just Work. Det är vad SQL-parametrar är till för, hantera citering av olika datatyper korrekt.