我正在使用ORM SQLAlchemy进行非常简单的查询,在该查询中,我希望获得一个列(类型)以及每个值(count
和group by
)的出现情况。
我可以通过访问type
对象上的type
属性来访问server
列(如提供的代码所示)。
我还可以通过访问count
对象上的索引0来访问server
列。
我的问题是:是否有一种简单的方法来将dict / property作为访问count
列的方法?例如:server.count
我已经使用server
广泛检查了dir()
对象,但是找不到任何可以返回count
值的属性。
class Server(Base):
__tablename__ = 'servers'
id = Column(Integer, primary_key=True)
type = Column(String)
method = Column(String)
def __repr__(self):
return "<Server(type='%s', method='%s')>" % (self.type, self.method)
session = Session()
servers = session.query(func.count(Server.type), Server.type).group_by(Server.type).all()
for server in servers:
print(server[0], server.type)
答案 0 :(得分:0)
我要做的就是为我的班级中没有相应属性的列设置标签。
所以,不要这样做:
servers = session.query(func.count(Server.type), Server.type).group_by(Server.type).all()
我应该这样做:
servers = session.query(func.count(Server.type).label('total_count'), Server.type).group_by(Server.type).all()
然后我可以访问total_count
属性(由label
函数提供):
for server in servers:
print(server.type, server.total_count)