【发布时间】:2018-09-25 12:40:01
【问题描述】:
conn_string = "dbname='{}' port='{}' user='{}' password='{}' host='{}'"\
.format(dbname,port,user,password,host_url)
sql="""UNLOAD ('select col1,col2 from %s.visitation_hourly_summary_us where col4= '2018-07-10' and col5= '1';') TO 's3://%s/%s/%s.csv' \
credentials 'aws_access_key_id=%s;aws_secret_access_key=%s' \
MANIFEST GZIP ALLOWOVERWRITE;Commit;""" \
% (schema_name,s3_bucket_name, schema,table,aws_access_key_id,\
aws_secret_access_key)
con = psycopg2.connect(conn_string)
cur = con.cursor()
cur.execute(sql)
我正在尝试执行上述脚本来读取表格,然后在 S3 中创建一个文件
由于我的列是字符串,因此我无法跳过单引号,并且在 where 附近出现语法错误错误
另外,我尝试在 where 条件下给出 \ 仍然显示相同的错误。
任何帮助将不胜感激。
谢谢
【问题讨论】:
-
您遇到的错误是什么?在我看来,您的
conn_string在这里是错误的 -
另外,不要使用字符串格式化操作来构建查询。将参数化查询和参数元组分别传递给
execute。
标签: python amazon-web-services amazon-s3 amazon-redshift-spectrum