首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用pgdb.executemany?

如何使用pgdb.executemany?
EN

Stack Overflow用户
提问于 2011-07-19 10:24:24
回答 1查看 1.6K关注 0票数 6

我正在尝试使用pgdb模块执行从Python到PostgreSQL的insert语句。

我看到文档上写着:

代码语言:javascript
复制
    cursor.executemany(query, list of params)
    # Execute a query many times, binding each param dictionary
    # from the list.

所以我试着这样做:

代码语言:javascript
复制
>>> insert = "insert into foo (name, number) values (?,?);"
>>> params = [{ 'name': 'John', 'number': 123 }, { 'name': 'Jack', 'number': 234 }]
>>> cursor.executemany(insert, params)

这给了我一个错误,指向?。这种参数化查询的正确语法是什么?另外,如果这是在文档中,我可以在哪里找到它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-19 14:37:59

你想要的

代码语言:javascript
复制
insert = "insert into foo (name, number) value (%(name)s, %(number)s);"

可以通过paramstyle模块级常量找到DBAPI驱动程序支持的参数包含样式。根据PEP 249 (也称为python database API2规范):

字符串常量,说明接口应设置的参数标记格式的类型。可能的值为2:

“‘qmark”问号样式,例如“...WHERE name=?”‘数字’数字,位置样式,例如'...WHERE name=:1‘’命名的样式,例如'...WHERE name=:name‘' format’ANSI C printf格式代码,例如'...WHERE name=%s‘’Python扩展格式代码,例如'...WHERE name=%(name)s‘

如果你检查pgdb,你会看到

代码语言:javascript
复制
>>> import pgdb
>>> pgdb.paramstyle
'pyformat'
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6741636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档