使用 regexp_replace 进行 Redshift 查询可以在 Redshift 控制台中运行,但不能在 Python lambda 中运行

问题描述 投票:0回答:1

我的 Redshift 表中的一个字段的结构类似于

{event_type} 2024-01-01
,因此我使用
regexp_replace
从事件类型中删除日期。我通过这样的 Python Lambda 调用 Redshift

client = boto3.client("cluster-name", aws_region, aws_access_key_id, aws_secret_access_key, aws_session_token)

query = """
    select id, regexp_replace(event_type, '\\s+\\d{4}-\\d{2}$', '') as event
    from table
"""

但是正则表达式不起作用,查询返回的所有结果仍然附加了日期。

但是,如果我在 Redshift 控制台中尝试查询,该字段会正确转换。

我认为这与

\\s
和转义字符有关,我尝试使用三个和四个斜杠而不是两个,但这不起作用

python sql regex aws-lambda amazon-redshift
1个回答
0
投票

使用Python“原始字符串”代替:

query = r"""
    select id, regexp_replace(event_type, '\\s+\\d{4}-\\d{2}$', '') as event
    from table
"""

这样它就不会删除每对反斜杠中的一个。

© www.soinside.com 2019 - 2024. All rights reserved.