首页 > 解决方案 > 使用 SQLAlchemy 检索 PostgreSQL 列

问题描述

我正在使用 SQLAlchemy 从数据库中的表中返回某些列,但我遇到了一个特定列的问题。

import sqlalchemy as db

engine = db.create_engine('postgresql://username:password@host:port/db')
table_a = db.Table("table_a", db.MetaData(), autoload = True, autoload_with = engine)

query = db.select([table_a.columns.document_num.distinct(),
                   table_a.columns.class])

从上面的脚本中可以看出,其中一列被命名class,这会产生无效的语法错误。

不幸的是,重命名数据库中的列不是一个选项,所以我试图找到另一种解决方法。

标签: pythonpython-3.xpostgresqlsqlalchemy

解决方案


您可以使用

getattr(table_a.columns, "class")

按名称获取列。例如,如果“类”是一个变量,这也将起作用

class = "class"
getattr(table_a.columns, class)

推荐阅读