Python SqlAlchemy:如果可能,转换为int/如果字符串是数字,则测试

Python SqlAlchemy:如果可能,转换为int/如果字符串是数字,则测试,python,casting,sqlalchemy,string-matching,Python,Casting,Sqlalchemy,String Matching,我有一个包含很多不同值的文本列,有些是数字,有些不是。我想查找包含大于给定数字的数值的所有行 我可以使用cast: def findattrvalUpper42(): q=db.query(AttrVal) q=q.filter(强制转换(AttrVal.value,数值)>42) 退货清单(q) 问题是当cast遇到一个值为“cookies”的行时,它会抛出一个错误。因此,我需要一种方法,使cast在失败时返回默认值,或者另外只过滤数值,例如: def findattrvalUpper42(

我有一个包含很多不同值的文本列,有些是数字,有些不是。我想查找包含大于给定数字的数值的所有行

我可以使用
cast

def findattrvalUpper42():
q=db.query(AttrVal)
q=q.filter(强制转换(AttrVal.value,数值)>42)
退货清单(q)
问题是当
cast
遇到一个值为“cookies”的行时,它会抛出一个错误。因此,我需要一种方法,使
cast
在失败时返回默认值,或者另外只过滤数值,例如:

def findattrvalUpper42():
q=db.query(AttrVal)
q=q.filter(AttrVal.value.isNumeric())
q=q.filter(强制转换(AttrVal.value,数值)>42)
退货清单(q)

但我找不到任何“is numeric”或“match regular expression”函数可以进行过滤。

为什么需要这样做?我很好奇一个数据库设计需要这样做。你用的是什么数据库管理系统?我用的是Postgres,我已经找到了一种方法来处理regex,但我更喜欢后端不可知的解决方案。