Не е необходимо да използвате генератор, за да преглеждате mydata . Просто предайте mydata директно:
cur.executemany(sql, mydata)
Адаптерът на базата данни ще премине през mydata за вас и изразът на генератора само вмъква ненужен допълнителен цикъл.
Ако не получавате никакви съобщения за грешка, но и няма промени, проверете следното:
-
Уверете се, че сте извършили транзакцията; стартирайте
con.commit()след.executemany()обадете се. -
Трикратна проверка че
mydataне е празно.
Адаптерът на базата данни ще обработва правилно стойностите с плаваща стойност вместо вас; ако колона е маркирана като FLOAT NOT NULL и вие предавате Python float стойност за тази колона, Things Just Work. За това служат параметрите на SQL, за правилна обработка на цитирането на различни типове данни.