python中psycopg2的批提交

2024-10-01 11:40:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python还不熟悉。我有一个用例,在这个用例中,我必须解析一个CSV文件,然后将行插入DB。你知道吗

这是我的密码

with open(targetFileName, 'r') as csvfile:
        # creating a csv reader object 
        csvreader = csv.reader(csvfile) 
        for row in csvreader:
            print(row)
            with conn.cursor() as cur:
                cur.execute("insert into test (first, second) values(%s,%s)",row)
                conn.commit()

在这里,我逐行执行和提交查询。我想批量提交,而不是提交每一行。有什么办法吗?你知道吗


Tags: 文件csvcsvfile密码dbaswithopen
1条回答
网友
1楼 · 发布于 2024-10-01 11:40:58

还没有测试过,但是不能把for循环放在第二个with语句中,把commit放在for循环之后吗?你知道吗

with open(targetFileName, 'r') as csvfile:
    # creating a csv reader object 
    csvreader = csv.reader(csvfile)
    with conn.cursor() as cur:
        for row in csvreader:
            print(row)
            cur.execute("insert into test (first, second) values(%s,%s)",row)
        conn.commit()

您还可以考虑在Psycopg2中使用execute\u batch命令:

http://initd.org/psycopg/docs/extras.html#fast-execution-helpers

相关问题 更多 >