![](/img/trans.png)
[英]SQLAlchemy “AttributeError: 'str' object has no attribute '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'
这里到底有什么问题?
注意:我可以根据要求展示模型,但我认为没有必要。 此查询中使用的两个模型( Entities
和EntitiesBckp
)具有完全相同的结构。
我相信您正在调用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.