尝试以下列方式从pg_shadow表中选择一列:
role_tbl = Table('pg_shadow', MetaData(engine), autoload=True)
db.query(role_tbl.c.passwd).filter_by(usename='name')
并收到错误:
* AttributeError:'NoneType'对象没有属性'class _'
答案 0 :(得分:0)
试试这个:
role_tbl.select([role_tbl.c.passwd]).where(username=='name').execute().fetchall()
或者表中可能没有这样的列。
您可以通过打印所有列来检查
print role_tbl.columns
P.S。 此外,您还应该使用一个元数据实例:MetaData(引擎)(它应该存储有关所有表的信息)
答案 1 :(得分:0)
关键字表达式是从查询的主要实体或作为
Query.join()
调用目标的最后一个实体中提取的。
其中实体是映射类或Table
对象,但您要查询单个列。过滤的正确方法是:
db.query(role_tbl.c.passwd).filter(role_tbl.c.usename == 'name')
在更新版本的SQLAlchemy中,错误是:
NoInspectionAvailable: No inspection system is available for object of type <class 'NoneType'>