Исправьте ваш код следующим образом:
sql = """INSERT INTO calculated_corr_coeff(date,Day) VALUES (?,?)"""
cursor.execute(sql, (x,y,)) #<-- here
Потому что это просто одна вставка (не несколько вставок)
Объяснение
Полагаю, вы ошиблись по поводу количества вставок (строк) и количества параметров (полей для вставки в каждой строке). Если вы хотите вставить несколько строк, используйте executemany
, просто для одной строки вы должны использовать execute
. Второй парапет в execute
- это «список» (или последовательность) значений, которые нужно вставить в эту строку.
Alternative
Вы можете попытаться изменить синтаксис и вставить все данные в один кадр, используя ** синтаксис :
values = zip(A,B) #instead of "for"
sql = """INSERT INTO calculated_corr_coeff(date,Day) VALUES (?,?)"""
cursor.executemany(sql, **values )
Обратите внимание, что этот подход не использует оператор for
. Это означает, что все данные отправляются в базу данных за один вызов, это более эффективно.