我还在学习sqlalchemy,所以如果我认为这完全是错误的(或者使用了错误的术语),我很抱歉,但是如果我理解正确,如果我查询一个有多行的表,我需要遍历返回的对象来访问每一行的数据,而如果表中只存在一行,我不需要遍历对象,可以直接访问列名。例如(希望我做得对):
# when multiple records exist
records = session.query(Customer).all()
for row in records:
print(row.name)
与
# when a single record exists
records = session.query(Customer).all()
print(records.name)
对我来说似乎没有意义的是,我需要编写两种不同的方法来访问数据,这取决于是否返回一行或多行。这看起来很奇怪,另外一个事实是我不能很容易地找出返回的记录集中有多少行,这样我就可以相应地对数据进行操作。有什么我不知道的吗?有没有一个方法可以用来访问从查询返回的数据,而不管数据库中是否有一行或多行?
谢谢!迈克
1条答案
按热度按时间yebdmbv41#
如果使用查询
.all()
要获取一个或多个数据,仍然必须循环数据。如果查询只得到一行,则可以使用.first()
或者.one()
没有循环你就能得到数据。