psycopg2用'\'反斜杠替换'%5C'

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

我尝试解码AWS Redshift中的URL。当我在SQL Workbench上运行以下代码时,它完全没问题。但是,当我通过psycopg2使用相同的代码时,它给了我错误消息ProgrammingError: syntax error at or near "D" LINE 35: ,'%5D',']')) as ...

码:

SELECT *,
REPLACE(LEFT(CONCAT(SUBSTRING(REGEXP_SUBSTR(t1.url, 'keywords=([a-zA-Z0-9]+[%+])*[a-zA-Z0-9]*') from 10), t1.extracted_search_value), 100),'%5C','\\') as parsed_search from new_table t1 
LIMIT 10
python sql amazon-redshift psycopg2
1个回答
1
投票

如果你在python中使用以下SQL它应该工作。我用psycopg2测试了它

基本上你的SQL中有两个反斜杠,Postgres文档有

如果需要输入文字反斜杠,请使用\\

我用\\替换了代码中的\\\\

SELECT *,
REPLACE(LEFT(CONCAT(SUBSTRING(REGEXP_SUBSTR(t1.url, 'keywords=([a-zA-Z0-9]+[%+])*[a-zA-Z0-9]*') from 10), 
t1.extracted_search_value), 100),'%5C','\\\\') as parsed_search from new_table t1 
LIMIT 10

有关更多说明,请参阅第9.7.3节。 POSIX正则表达式在以下链接https://www.postgresql.org/docs/current/functions-matching.html#FUNCTIONS-LIKE

如果这可以解决您的问题,请告诉我。

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