将列表作为通过psycopg2(2.8.5)执行的INSERT语句的参数传递


data = [2, 5.5, 'Harry Potter']
statement = "INSERT INTO ranks (Rank, Height, Name) values(%s, %s, %s)"
#made a connection to a postgres database using psycopg2

我想将名为data的列表作为参数传递给用于执行该语句的cursor.execute()函数。

注意:由于data列表包含具有不同数据的元素类型,我不能在上面使用string.join((方法。

我应该怎么做?

请参阅此处。

基本上:


cur.execute(statement, data)

因此,将一系列值按顺序传递给将与%s参数匹配的查询。

更新。操作:

create table ranks (rank integer, height numeric, name varchar);
import psycopg2
con = psycopg2.connect("dbname=test host=localhost user=aklaver")
data = [2, 5.5, 'Harry Potter']
statement = "INSERT INTO ranks (Rank, Height, Name) values(%s, %s, %s)"
cur = con.cursor()
cur.execute(statement, data)
con.commit()
select * from ranks ;
rank | height |     name     
------+--------+--------------
2 |    5.5 | Harry Potter

工作。因此,您的错误一定与其他数据或语句有关。

相关内容

  • 没有找到相关文章

最新更新