SQLAlchemy:如何对列值执行regexp_replace

时间:2014-03-19 15:23:50

标签: python replace sqlalchemy

我正在尝试做相同的事情 cast(regexp_replace(entry.page_title,'.*::: ','') AS INT)使用SQLAlchemy。

我已经看到您可以使用hybrid properties在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)

我知道问题是我想将Entry的标题作为string当它实际上是InstrumentedAttribute时。但是我不清楚如何获得字符串值,让它做我想做的事情。

甚至可能吗?

1 个答案:

答案 0 :(得分:4)

原来有一个功能,所以我可以做

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

我会删除这个问题,但是我花了很长时间才搜索到这个问题,我只是想把它留在这里以防万一其他人需要它。