python-3.x 查询结果中的对象使用点标记法,但引发无法使用.get调用的

a9wyjsp7  于 2022-11-19  发布在  Python
关注(0)|答案(1)|浏览(146)
sample_object = db.fetch_one(sample_query) # Object from db query result
print(sample_object.key) #working when called`
#does not work when 
print(sample_object.get("key"))

它在python 3.9.6版本中运行,但在3.10.4版本中不运行

ozxc1zmp

ozxc1zmp1#

根据**fetchone()[sqlalchemy-docs],它会传回:
提取一行。
当所有数据列都用完时,会传回None。
fetchone()方法是sqlalchemy ORM中Row对象的方法,其中:
表示单个结果行。Row对象表示数据库结果的一行。在1.x系列的SQLAlchemy中,它通常与CursorResult对象相关联,但从SQLAlchemy 1.4开始,ORM也将其用于
类似元组的**结果。
因此,如果更多地关注sqlalchemy中的Row对象,你会发现它不是一个像dict python内置类型的对象,而且你不能使用.get()方法。

相关问题