加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – psycopg2在executemany语句中插入表名

发布时间:2020-12-20 13:08:28 所属栏目:Python 来源:网络整理
导读:我试图将数据插入表中.该表在程序的结构中确定,并始终保持不变.如何在执行多语句中插入表名,如下所示? tbl = 'table_name'rows = [{'this':x,'that': x+1} for x in range(10)]cur.executemany("""INSERT INTO %(tbl)s VALUES( %(this)s,%(that)s )""",rows
我试图将数据插入表中.该表在程序的结构中确定,并始终保持不变.如何在执行多语句中插入表名,如下所示?

tbl = 'table_name'
rows = [{'this':x,'that': x+1} for x in range(10)]
cur.executemany("""INSERT INTO %(tbl)s 
                  VALUES(
                          %(this)s,%(that)s
                  )""",rows)

解决方法

正如官方文档中所述:“只有查询值才能通过此方法绑定:它不应该用于将表或字段名称合并到查询中.如果需要动态生成SQL查询(例如动态选择表格) name)你可以使用psycopg2.sql模块提供的工具.“

它具有以下语法:

from psycopg2 import sql
tbl = 'table_name'
rows = [{'this':x,'that': x+1} for x in range(10)]
cur.execute(
    sql.SQL("INSERT INTO {} VALUES (%(this)s,%(that)s);"""")
        .format(sql.Identifier(tbl)),rows)

更多关于http://initd.org/psycopg/docs/sql.html#module-psycopg2.sql

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读