首页 > 解决方案 > Sqlalchemy:将字典转换为布尔表达式

问题描述

我有以下 sqlalchemy 模型:

class Person(Base):
    __tablename__ = "Person"
    id = Column(Integer, primary_key=True)
    name = Column(String(100), nullable=False, unique=True)

    def __repr__(self):
        return f"<Person: {self.name}>"

给定模型和一些数据作为字典,我想确定该记录是否存在于我的数据库中。我知道我可以做到以下几点:

model = Person
data = {"name": "Johnny"}
db_object = session.query(model).filter_by(**data).one()

我也希望能够使用filter链条来做到这一点。没有变量,它看起来像这样:

db_object = session.query(Person).filter(Person.name == "name").one()

我的问题是:如何将字典转换{"name": "Johnny"}Person.name == "name"?然后我应该能够将其传递给过滤器并获得相同的结果。

标签: pythonsqlalchemy

解决方案


推荐阅读