如何使用psycopg2插入列表列表

时间:2017-09-27 04:14:37

标签: python postgresql python-3.x 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:list index out of range。

如果我将列表缩短为单个条目,程序就会执行,即:

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

但真正的列表将在列表中包含数千个列表。任何帮助是极大的赞赏。感谢。

1 个答案:

答案 0 :(得分:0)

使用

cur.executemany(qry, lst2)

请参阅文档:http://initd.org/psycopg/docs/cursor.html