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函数没有任何限制。”