为什么要返回元组?

2024-09-28 22:08:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下内容:

tableNumber = session.query(TABLE.TABLESNUMBER).filter_by(TABLESID=self.TABLESID).first()         
return str(tableNumber)

这是我的TABLE类:

^{pr2}$

这是我收到的输出:

(1L,)

在我的mySQL database中,上面的所有值都表示为ints。在

我只想把1归还。在


Tags: selfbyreturnsessionmysqltablefilterquery
2条回答

query().first()返回第一行。这就是返回元组的原因。查询不关心第一行中只有1个值,从而得到长度为1的元组。在

如果确定查询只返回1个标量值,则可以使用^{}代替first()。请阅读链接的文档。在

edit:要获得第一个返回元组中的第一个值,当查询可能返回多行时,您可以将order_by(...).limit(1)添加到查询中,然后使用scalar(),或者获取第一行,然后显式地将元组转换为int

first()和all()返回“tuple”

所以,
session.query(TABLE.TABLESNUMBER).filter_by(TABLESID=self.TABLESID).first() 返回包含“TABLESNUMBER”的元组

如果只需要一个值(表编号)

你可以用它。 session.query(TABLE.TABLESNUMBER).filter_by(TABLESID=self.TABLESID).first().TABLESNUMBER

相关问题 更多 >