擅长:python、mysql、java
<p>您的代码中有两个问题:</p>
<ul>
<li>在<code>cursor.execute</code>调用中运行两个单独的SQL命令。这是对pythondbapi的误解,它通常只允许每次执行调用一个命令</李>
<li>在</em>字符串中不正确地包含<code>format</code>关键字<em>。这是字符串插值的一般Python语法问题。具体来说,<code>.format</code>是一个在字符串上运行的方法。见<a href="https://docs.python.org/3/tutorial/inputoutput.html#the-string-format-method" rel="nofollow noreferrer">docs</a></李>
</ul>
<P>考虑将SQL语句分离并正确使用^ {CD4>}来插入^ {{CD5>}占位符^ ^ a2}。为了便于说明,在单独的一行上调用了<code>.format</code></p>
<pre><code>conn = psycopg2.connect(...)
sql = "CREATE TEMP TABLE ##Validation_Marc ( Codes varchar(250) )"
cur.execute(sql)
conn.commit()
mylist = ['HP7CXNGSUFEPZCO4GS5RQPY6XY', '9475EFWZCNARPEJEZEMXDFHIBI',
'6ECWZUQGEJCR5EZXDH9URCN53M', 'XZ9P6KTDGREM5KIXUO9IHCTKAQ']
sql = "INSERT INTO ##Validation_Marc (Codes) VALUES {}"
cur.execute(query = sql.format(', '.join(['(%s)' for _ in mylist])), # FORMAT PLACEHOLDERS
vars = mylist) # BIND PARAMS
conn.commit()
</code></pre>