繁体   English   中英

AttributeError: 'list' object 在 SQLAlchemy 中没有属性 'c'

[英]AttributeError: 'list' object has no attribute 'c' in SQLAlchemy

我正在尝试使用 SQLAlchemy 对 MariaDB 数据库中的某些数据运行一个非常简单的查询。 这是我正在寻找的EXCEPT查询,以获取在我的第一个选择中但不在第二个选择中的结果。 就是这个样子

sqlalchemy.except_(self.session.query(Entities).all(), self.session.query(EntitiesBckp).all())

但是,我不断收到此错误,

AttributeError: 'list' object has no attribute 'c'

这里到底有什么问题?

注意:我可以根据要求展示模型,但我认为没有必要。 此查询中使用的两个模型( EntitiesEntitiesBckp )具有完全相同的结构。

我相信您正在调用sqlalchemy.except_这是查询构建的符号语句的一部分(从 sqlalchemy 的__init__.py判断)。 If converted to SQL it would most likely print as EXCEPT , and it lacks the SELECT... portion of a full query, ie EXCEPT SELECT FROM... SELECT FROM...

如果我们参考SQL Alchemy 文档,我们会看到存在另一种except_ ,即查询 object 上的 function。 使用查询except_允许您从一个查询链接到下一个查询: self.session.query(Entities).except_(self.session.query(EntitiesBckp)).all()

使用语句except_为您提供必须执行的符号语句,例如session.execute(except_statement).all()

换句话说,在问题中,您在语句操作中包装了两个查询对象,而您应该将语句对象包装在查询中。

另请注意,sqlalchemy 1.4+ 弃用了 session.query() 方法,转而支持更新的语法,例如session.execute(except_(select(Entities), select(EntitiesBckp)))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM