除了sqlalchemy,python'in'的等价物是什么

2024-06-25 23:13:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一本字典,用来查询数据库中的匹配项。我有一个查询行不适合我。如果我有这样的清单:

user['names']= [Alice, Bob, John]

因为这是一个列表,所以我尝试使用如下内容:

 q.filter(UserTable.firstname in user['firstnames'])

但不管出于什么原因,这都行不通。不过,我知道鲍勃在数据库里。当我手动下拉所有查询时,我可以看到其中一行中有一个名称。如果我这样做:

q.filter(UserTable.firstname == user['firstnames'][1]) #Only does Bob

它起作用了。当我手动拉取所有查询时,将每一行转换为字典,然后执行

row[#row_that_matches].firstname in user['names']

这也行。但是由于某些原因,在sqlalchemy中使用“in”关键字并没有像预期的那样起作用。有没有人知道一种替代方法可以对值列表中的某个内容进行sqlalchemy查询


Tags: in内容列表字典namessqlalchemy原因手动
1条回答
网友
1楼 · 发布于 2024-06-25 23:13:24

使用^{} column method根据序列测试列:

q.filter(UserTable.firstname.in_(user['firstnames'])

请参见对象关系教程的Common Filter Operations section

IN:

query.filter(User.name.in_(['ed', 'wendy', 'jack']))

# works with query objects too:
query.filter(User.name.in_(
        session.query(User.name).filter(User.name.like('%ed%'))
))

相关问题 更多 >