【发布时间】:2021-09-18 14:20:03
【问题描述】:
我设置如下查询。我想用变量替换bucket_name 和file_name
这个查询由psycopg2执行
query = '''copy table.test
from 's3://%(bucket_name)s/%(file_name)s.txt'
iam_role 'arn:aws:iam::123453215125:role/test'
timeformat as 'auto'
ACCEPTINVCHARS
delimiter '\t';'''
我得到存储桶名称和文件名
bucket_name = get_bucket_name(event)
file_name = get_file_name(event)
之后,我执行了查询,但它返回了错误
cur.execute(query, {'bucket_name':bucket_name,'file_name':file_name})
[ERROR] SyntaxError: syntax error at or near "expired" LINE 2: from 's3://'expired-test-bucket... ^ Traceback (most recent cal
好像bucket_name换成单引号'expired-test-bucket'
我想要的结果是expired-test-bucket
我该如何解决这个问题?
【问题讨论】:
-
您可以尝试使用 python 的字符串 format() 和 {} 占位符作为存储桶名称和文件名。
-
也许this thread 能帮上一点忙。