4
我試圖將我的代碼重構爲PEP8標準以提高可讀性,但我努力在我的SQL查詢中轉義引號。 我有2個問題。首先是一個簡單的SQL查詢。第二個是Redshift UNLOAD命令。Redshift中的轉義引號查詢
query = '''SELECT * FROM redshift_table
LEFT JOIN
(SELECT DISTINCT * FROM redshift_view) v
ON redshift_table.account_number = v.card_no
WHERE timestamp < date_trunc('day', CURRENT_DATE)
AND timestamp >= (CURRENT_DATE - INTERVAL '1 days')'''
unload = '''UNLOAD ('%s') to '%s'
credentials 'aws_access_key_id=%s;aws_secret_access_key=%s'
delimiter as '%s'parallel off ALLOWOVERWRITE''' % (query, s3_path, access_key, aws_secret, file_delimiter)
因爲SQL查詢卸載命令內嵌入的,我只能讓它通過轉義引號與3個反斜槓的工作在前面加上他們:「天」變爲///「天///」。
這並不理想,我想知道是否有解決辦法。
任何幫助,非常感謝。謝謝。
這絕對是一個優雅的解決方案。然而,我想知道是否有一種方法可以利用psycopg2,它已經執行了sql查詢的轉義,以避免添加額外的代碼。 – Zihs 2014-10-29 14:44:08
這不考慮已經逃脫的引號。這段代碼將通過轉義反斜槓來有效避開它。請閱讀Friedl的掌握正則表達式以獲得標準正則表達式,以便在考慮嵌入轉義字符的情況下匹配並避免引用的字符串。 – bluesmoon 2016-08-29 21:43:21