使用字典插入psycopg中的大表

时间:2015-07-24 13:04:30

标签: python postgresql psycopg2

我在数据库中有一个非常大的表(> 200列),我通过psycopg2访问它。我有要作为字典插入的行,列名作为键,值作为值。使用psycopg2,我想将行插入表中。

由于所讨论的表的列数过多,我宁愿不手动写出一个insert语句。如何有效和整齐地插入字典?

1 个答案:

答案 0 :(得分:1)

这是测试表:

create table testins (foo int, bar int, baz int)

您可以这样编写一个sql语句:

d = dict(foo=10,bar=20,baz=30)

cur.execute(
    "insert into testins (%s) values (%s)" 
        % (','.join(d), ','.join('%%(%s)s' % k for k in d)),
    d)