2017-05-26 80 views
0

鑑於Postgres的查詢轉換: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) 
+2

只有當元組只有一個元素時,才需要''元組末尾的','。例如。 '('a',)'是一個元組,'('a')'不是。 – Kendas

+0

謝謝!任何想法誰給出如何'psycopg2'渲染查詢? – iamsterdam

+0

請給出產生錯誤的'mogrify'的確切電話。 – chepner

回答

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')) 

應該是不正確的。 - Kendas

相關問題