您好我想将“filter()”方法返回的实例对象(标量对象)转换为列表。
是否可以获得类似于“all()”方法返回的列表的列表。
有没有方法?
答案 0 :(得分:0)
运行查询时
In [3]: session.query(User).all()
2012-01-05 16:45:42,553 INFO sqlalchemy.engine.base.Engine BEGIN (implicit)
2012-01-05 16:45:42,554 INFO sqlalchemy.engine.base.Engine SELECT user.username AS user_username
FROM user
如果您运行过滤器错误
In [4]: session.query(MPA).filter(User.username=='test')
Out[4]: <sqlalchemy.orm.query.Query object at 0x25d12d0>
因此,如果您想要列表,那么您可以使用此
In [5]: list (session.query(User).filter(User.username=='test'))
但在内部它会调用.all()
方法。
答案 1 :(得分:0)
Query.filter(criterion)
方法不返回实例对象。来自文档:
另一方面,将给定的过滤条件应用于查询,返回新生成的
Query
Query.all()
返回结果。来自文档:
将此
Query
所代表的结果作为列表返回。
要解决您的任务,只需使用.all()
向filter
添加my_session.query(...).filter(...).all()
,执行查询:
{{1}}