-1

我在 python is_valid_id(id) 中有一个函数,它返回 True 或 False。我想在过滤条件内的 sqlalchmy 查询中使用这个函数。我的查询如下。

result = session.query(tableName).filter(is_valid_id(id) == True).all()

这会引发以下错误。

AttributeError: Neither 'Column' object nor 'Comparator' object has an attribute 'strip' 

您能告诉我如何在 sqlalchemy 查询中使用用户定义的函数吗?

我也尝试过使用 func 关键字。那是行不通的。

4

1 回答 1

0

现在你说的是 filter by (True == True).all() 这没有任何作用。

您需要说出您要过滤的内容。

result = session.query(tableName).filter(tableName.columnName == condition).all()

在我看来,你应该做这样的事情。抓取所有内容,然后遍历每个对象并查看您的 id 是否返回 true。例如:

table_objects = session.query(tableName).all()
for current_object in table_objects:
    current_id = current_object.id
    is_current_id_valid = is_valid_id(current_id)
    if is_current_id_valid:
        print(f'this id is valid: {current_id}')

于 2021-04-28T19:05:12.580 回答