微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我如何从 sqlalchemy 过滤器语句中的列表传递多个参数

如何解决我如何从 sqlalchemy 过滤器语句中的列表传递多个参数

用户返回一个字符串,其中解析以在 sqlalchemy 中应用过滤器。 但参数数量未知。 例如:

def fun_name(user_id,value):
  return db.query(table)
         .filter(or_(table.column_name.like('%'+value+'%')))

如果值是一个字符串,我可以使用该值应用过滤器,这将起作用。

但现在我遇到了这种情况:

def fun_name(user_id,values):
  values_lst = values.split(',')
  return db.query(table)
         .filter(or_(table.column_name.like('%'+ values_lst[0] +'%'),table.column_name.like('%'+ values_lst[1] +'%')))

这仅在拆分有两个参数时才有效, 但是,如果我之前不确切知道列表的大小,我该如何处理?

有没有通用的方法来解析这个?

解决方法

感谢我的朋友,他的答案挽救了我的一天。 解决办法是

def fun_name(user_id,values):
  values_lst = values.split(',')
  return db.query(table)
         .filter(or_(*[table.column_name.like(f'%{val}%') for val in values_lst]))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。