当名称是Python保留字时检索表列

问题描述 投票:0回答:1

我正在使用 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
,它会生成无效的语法错误。

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

python postgresql sqlalchemy
1个回答
0
投票

你可以使用

getattr(table_a.columns, "class")

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

class = "class"
getattr(table_a.columns, class)
© www.soinside.com 2019 - 2024. All rights reserved.