Как использовать psycopg2 для вставки списка списков

Я использую python 3.6, psycopg2 для вставки данных в базу данных postgresql (9.6). Вот мой код:

def postgre_save():
    params = Config()
    with psycopg2.connect(**params) as conn:
        cur = conn.cursor()
        lst2 = []
        lst2.append([9999, datetime.date(2017, 5, 1), 0.99, 1, 3])
        lst2.append([9999, datetime.date(2017, 6, 1), 1.2, 1, 3])
        qry = 'INSERT INTO oww.welldep(well_id, dep_date, depletion, reach, type) VALUES (%s, %s, %s, %s, %s);'
        cur.execute(qry, lst2)

Когда это выполняется, я получаю следующую ошибку: IndexError: список индекса вне диапазона.

Если я сокращу список до одной записи, программа выполнится, то есть:

lst2 = [9999, datetime.date(2017, 5, 1), 0.99, 1, 3]

но реальный список будет иметь тысячи списков в списке. Любая помощь с благодарностью. Благодарю.

1 ответ

Решение

Использование

cur.executemany(qry, lst2)

См. Документацию: http://initd.org/psycopg/docs/cursor.html

Другие вопросы по тегам