我正在尝试将我的代码重构到符合PEP8标准以达到更好的可读性,但是我在转义SQL查询中的引号方面遇到了困难。
我有两个查询。第一个是简单的SQL查询。第二个是Redshift UNLOAD命令。
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 查询嵌入在 UNLOAD 命令中,我只能通过在引号前面加上三个反斜杠来转义引号使其正常工作:'day' 变成了 ///'day///'。这并不是最理想的解决方案,我想知道是否有其他方法可以解决这个问题。
非常感谢您的帮助。谢谢。