SQLAlchemy中session.execute返回带()和,的结果,如何获取纯单元格值?
解决方法
fetchone()返回的是包含查询结果的元组,你看到的('Berlin',)就是单个元素的元组格式,要提取其中的具体值,有几种简单方法:
索引取值:直接通过索引
[0]获取元组的第一个元素# 注意:SQL语句中字符串值要加单引号,避免语法错误 var = db.session.execute(text(f"SELECT city FROM world WHERE country = 'Germany'")).fetchone()[0]解包赋值:将元组直接解包到变量中
city, = db.session.execute(text(f"SELECT city FROM world WHERE country = 'Germany'")).fetchone() # 此时city变量的值就是'Berlin'使用scalar()方法(推荐):SQLAlchemy 1.4及以上版本支持用
scalar()直接返回单个结果值,无需额外处理元组var = db.session.execute(text(f"SELECT city FROM world WHERE country = 'Germany'")).scalar()
另外注意你的原SQL语句中,country = Germany里的Germany没有加单引号,这会被数据库解析为列名而非字符串值,大概率会触发语法错误,记得补上单引号。
内容的提问来源于stack exchange,提问作者OmT
相关产品推荐
相关产品推荐

