【问题标题】:How to use user defined python function inside a sqlalchemy query filter?如何在 sqlalchemy 查询过滤器中使用用户定义的 python 函数?
【发布时间】:2021-07-21 11:39:57
【问题描述】:

我在 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 关键字。那是行不通的。

【问题讨论】:

  • 这和pandas有关系吗?
  • 不,这与 sqlalchemy 相关。

标签: sqlalchemy flask-sqlalchemy sqlalchemy-utils


【解决方案1】:

现在你说的是 (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}')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-09
    • 2010-12-27
    • 1970-01-01
    • 2015-05-11
    • 1970-01-01
    • 2021-10-18
    • 2015-01-15
    • 1970-01-01
    相关资源
    最近更新 更多