Python SQLAlchemy:如何对列值执行regexp\u替换

Python SQLAlchemy:如何对列值执行regexp\u替换,python,replace,sqlalchemy,Python,Replace,Sqlalchemy,我正在努力做与之相当的事情 cast(regexp\u替换(entry.page\u title,'.*::','')为INT)使用SQLAlchemy 我已经看到可以使用在ORM映射类上执行函数。 我尝试了以下方法,但我不知道如何使用混合属性来执行字符串替换 class Entry(object): def __init__(self, page_title): self.page_title = page_title @hybrid_property

我正在努力做与之相当的事情
cast(regexp\u替换(entry.page\u title,'.*::','')为INT)
使用SQLAlchemy

我已经看到可以使用在ORM映射类上执行函数。 我尝试了以下方法,但我不知道如何使用混合属性来执行字符串替换

class Entry(object):

    def __init__(self, page_title):
        self.page_title = page_title

    @hybrid_property
    def original_brand_id(self):
        return self.page_title.partition(' ::: ')[-1]
        ###OR ALSO TRIED DOING:
        return re.sub(r'[.*::: ]','',self.page_title)
我知道问题是我想将条目的页面标题视为
字符串
,而实际上它是
InstrumentedAttribute
。但我不清楚如何获取字符串值,如何让它执行我想要的操作


甚至有可能吗?

结果是有一个函数用于此,所以我可以这样做

@hybrid_property
def original_brand_id(self):
    return cast(func.regexp_replace(self.page_title, '.*::: ',''), Numeric)

我本想删除这个问题,但我花了很长时间在谷歌上搜索,才发现我准备把这个留在这里,以备其他人需要。

你使用了什么数据库引擎
func.regexp\u replace
在SQLite中似乎不可用。我在Postgres中使用了SQLAlchemy:)库的使用可能已经改变,就像几年前一样。快速查看文档。这可能只是Postgres特有的东西。SQLAlchemy将生成通过func.arbitral_function()调用的每个函数。它是否真的存在于SQL风格中是另一回事。从文档中可以看出:“请注意,func不知道的任何名称都会按原样生成函数名-对SQLAlchemy、内置或用户定义的SQL函数可以调用、已知或未知的SQL函数没有任何限制。”