postgres:不是在字符串格式化过程中转换的所有参数

时间:2017-05-26 13:58:25

标签: python string postgresql

鉴于Postgres查询:

INSERT INTO net.bgp_communities (comm_name, comm_value) VALUES (%s, %s) ;

和数据

('blabla', 'target:*:*')

结果查询是(使用mogrify

INSERT INTO net.bgp_communities (comm_name, comm_value) VALUES ('blabla', 'target:*:*') ;

导致

TypeError('not all arguments converted during string formatting',)

我认为错误来自元组最后没有,?但是如何解决这个问题?

修改

描述如何使用psycopg2

将查询与元组一起呈现
curs.executemany("""INSERT INTO net.bgp_communities (comm_name, comm_value) VALUES (%s, %s)""", msg)

1 个答案:

答案 0 :(得分:0)

  

已在评论中解决
  请注意,executemany需要一个可迭代的参数集 -

cursor.executemany("INSERT INTO sometable (id, somefield) VALUES (%s, %s)", [(1, 'a'), (2, 'b')])  
     

应该是正确的,而

cursor.executemany("INSERT INTO sometable (id, somefield) VALUES (%s, %s)", (1, 'a'))  
     

应该是不正确的。 - 肯达斯