Python将变量放在文本中

Python将变量放在文本中,python,python-3.x,aws-lambda,Python,Python 3.x,Aws Lambda,我有个问题 如何在Python代码中将lambda应用程序AWS的全局变量放入文本字符串中 def send_email(sender, recipient, aws_region, subject): SENDER = sender RECIPIENT = recipient AWS_REGION = aws_region SUBJECT = subject BODY_TEXT = "" BODY_HTML = ""&

我有个问题

如何在Python代码中将lambda应用程序AWS的全局变量放入文本字符串中

def send_email(sender, recipient, aws_region, subject):
   SENDER = sender
   RECIPIENT = recipient
   AWS_REGION = aws_region
   SUBJECT = subject
   BODY_TEXT = ""
   BODY_HTML = """<html>
   <head></head>
   <body>
        <h1>${os.environ['FUNCTION_NAME']} (Error)</h1>
       <p>Service STOMP in AMQ Server in ${os.environ['ENVIRONMENT']} not respond.</p>
        <br><br><br>
        <p>Automatic service:</p>
        <p>Lambda function: ${os.environ['FUNCTION_NAME']}</p>
        <p>AMQ IPs: ${os.environ['AWS_LB']}</p>
   </body>
   </html>
             """
   CHARSET = "UTF-8"
但是我想要

text (Error)
Service STOMP in AMQ Server in dev not respond.


Automatic service:
Lambda function: function_name
AMQ IPs: ips

现在,您只需将要转换为字符串文字的变量的名称(例如os.environ['FUNCTION_name'])写入字符串,而不是在Python脚本/会话中运行此字符序列时预期返回的值

通过使用3.6版本中引入的f字符串,可以让Python将变量值插值到字符串中

简言之,在赋值字符串时,只需在开头引号之前添加字符f,就可以运行大括号中包含的任何代码,并将返回值/引用值插入到该位置的字符串中

如果希望使用f字符串,原始问题中的代码可能如下所示

def send_电子邮件发件人、收件人、aws_地区、主题: 发送方=发送方 收件人=收件人 AWS_区域=AWS_区域 主语 正文文本= BODY_HTML=f {os.environ['FUNCTION_NAME']}错误 {os.ENVIRONMENT['ENVIRONMENT']}中AMQ服务器中的服务STOMP没有响应

自动服务:

Lambda函数:{os.environ['function_NAME']}

AMQ-IPs:{os.environ['AWS_-LB']}

字符集=UTF-8
当您仅放置文本而不放置文本时,此解决方案有效。但是谢谢你的回答,我将删除引号,不管怎样,三重引用的f字符串应该可以很好地工作,正如。你检查过某处是否有打字错误或错误吗?
text (Error)
Service STOMP in AMQ Server in dev not respond.


Automatic service:
Lambda function: function_name
AMQ IPs: ips