我在数据库中有一个非常大的表(> 200列),我通过psycopg2访问它。我有要作为字典插入的行,列名作为键,值作为值。使用psycopg2,我想将行插入表中。
由于所讨论的表的列数过多,我宁愿不手动写出一个insert语句。如何有效和整齐地插入字典?
答案 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)