小编use*_*978的帖子

sqlalchemy with postgres:插入到列有括号的表中

假设您"foo"在 postgres 中有一个表,其列名称为"col (parens) name"。psql 命令

INSERT INTO "foo" ("col (parens) name") VALUES ('bar');
Run Code Online (Sandbox Code Playgroud)

工作得很好。但是,如果我尝试使用 sqlalchemy(0.9.7 版)执行相同操作,则生成的 Python 代码将失败:

conn = sqlalchemy.create_engine('postgresql://name:password@host:port/database')
meta = sqlalchemy.schema.MetaData()
meta.reflect(bind=conn)
foo = meta.tables['foo']
vals = [{'col (parens) name': 'hi'}, {'col (parens) name': 'bye'}]
conn.execute(foo.insert(values=vals))
Run Code Online (Sandbox Code Playgroud)

这不起作用,出现以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "sqlalchemy/engine/base.py", line 729, in execute
    return meth(self, multiparams, params)
  File "sqlalchemy/sql/elements.py", line 321, in _execute_on_connection
    return connection._execute_clauseelement(self, multiparams, params)
  File "sqlalchemy/engine/base.py", line 826, …
Run Code Online (Sandbox Code Playgroud)

python postgresql sqlalchemy psycopg2

6
推荐指数
1
解决办法
1418
查看次数

标签 统计

postgresql ×1

psycopg2 ×1

python ×1

sqlalchemy ×1