繁体   English   中英

python psycopg2 INSERT查询中的多列

[英]Python psycopg2 multiple columns in INSERT query

我想通过psycopg2执行INSERT查询,对于这个问题,我们将其简化为:

query = """ INSERT INTO %s("%s") VALUES(%s); """

当我这样做时,这很好用:

params = [AsIs(table_name), AsIs(column_name), value]    
cursor.execute(query, params)

现在,我的Pandas数据框有大约90列以上,我想知道什么是扩展上述查询以便能够对多列执行的最佳方法。

我尝试将每个列和值作为单个字符串连接在一起并传递进来。我还尝试使用90+ "\\"%s\\""创建一个字符串,并且尝试创建格式字符串,即。 """INSERT INTO {0} ({1}...{n}) VALUES ({n+1...n+n})""".format(...) 有不相关的问题会阻止它们起作用,但是有没有更简单的方法来处理这种多列情况?

我不熟悉熊猫,但您可能想要这样的东西:

columns = ', '.join(column_names)    # Where column names is a tuple or list of all the column headings you want in your query.
query = """ INSERT INTO %s("%s") VALUES(%%s); """ % (table_name, columns)
params = [value]
cursor.execute(query, params)

关键是您需要分别插入列标题和值。 请参阅这篇文章,以获得比我能提供的更好的解释:

Psycopg2插入到带有占位符的表中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM