为什么返回元组?

2 python mysql sqlalchemy

我有以下几点:

tableNumber = session.query(TABLE.TABLESNUMBER).filter_by(TABLESID=self.TABLESID).first()         
return str(tableNumber)
Run Code Online (Sandbox Code Playgroud)

这是我的TABLE课:

class TABLE(Base):

    ....   

    TABLESID = Column(Integer, primary_key=True)
    TABLESNUMBER = Column(Integer, nullable=False)

    ...
Run Code Online (Sandbox Code Playgroud)

这是我收到的输出:

(1L,)
Run Code Online (Sandbox Code Playgroud)

在我中mySQL database,上述所有两个值都表示为ints

我只想1回来。

Hal*_*Ali 5

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

如果您确定查询将仅返回1个标量值,则可以使用scalar()代替first()。请阅读链接的文档。

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