【发布时间】:2021-10-04 14:44:38
【问题描述】:
我正在使用 AWS SES send_templated_email 方法。 它使用了一个名为 TemplateData 的参数 TemplateData – 包含键值对的转义 JSON 字符串。键对应于模板中的变量(例如,{{name}})。这些值表示替换电子邮件中变量的内容。
如果我使用硬编码,像这样:
TemplateData="""{\"quarter_num\":\"Q2\",
\"year\":\"2021\",
}"""
这行得通
但如果我想在该字符串中使用变量,例如:
TemplateData="""{\"quarter_num\":\"{}\",
\"year\":\"{}\",
}""".format("Q2", "2021")
这行不通。我认为这是一个逃避问题,但我不知道如何正确地做到这一点。 这是我收到的错误消息:
[ERROR] KeyError: '"quarter_num"'
Traceback (most recent call last):
File "/var/task/email_reports.py", line 35, in email_users
}""".format("Q2", "2021")
当我使用硬编码字符串时,这没有任何问题。
【问题讨论】:
-
“这行不通”当您说“行不通”时,请始终准确告诉我们这是什么意思。不要让人猜测
-
@juanpa.arrivillaga 错误是 boto3 错误,基本上说我没有为该参数使用正确的字符串
-
再次,请确切地告诉我们错误是什么。
-
@juanpa.arrivillaga 我添加了收到的错误消息。
标签: python json string escaping