Es ist nicht erforderlich, einen Generator zu verwenden, um mydata
zu durchlaufen . Geben Sie einfach mydata
ein direkt:
cur.executemany(sql, mydata)
Der Datenbankadapter wird mydata
durchlaufen für Sie und ein Generatorausdruck fügt nur eine unnötige zusätzliche Schleife ein.
Wenn Sie keine Fehlermeldungen erhalten, aber auch keine Änderungen, überprüfen Sie Folgendes:
-
Stellen Sie sicher, dass Sie die Transaktion festschreiben; Führen Sie
con.commit()
aus nach.executemany()
anrufen. -
Triple-Check dass
mydata
ist nicht leer.
Der Datenbankadapter behandelt Float-Werte korrekt für Sie; wenn eine Spalte als FLOAT NOT NULL
markiert ist und Sie übergeben einen Python-Float-Wert für diese Spalte, Things Just Work. Dafür sind SQL-Parameter da, um das Zitieren verschiedener Datentypen korrekt zu handhaben.