【发布时间】:2014-12-24 09:42:17
【问题描述】:
我正在尝试将我的代码重构为 PEP8 标准以提高可读性,但我正在努力在我的 SQL 查询中转义引号。
我有 2 个查询。第一个是简单的 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 命令中,所以我只能通过在引号前面加上 3 个反斜杠来转义引号来使其工作:'day' 变为 ///'day///'。
这并不理想,我想知道是否有办法解决它。
非常感谢任何帮助。谢谢。
【问题讨论】:
标签: python mysql amazon-redshift