为了账号安全,请及时绑定邮箱和手机立即绑定

Python boto3 SNS 电子邮件格式

Python boto3 SNS 电子邮件格式

莫回无 2021-08-11 20:06:33
我编写了一个代码,其中我使用 aws sns 通过 boto3 库向利益相关者发送电子邮件通知。我的问题是,当我编写代码时,我在文本之间使用了 4 个空格(或制表符)间距以使其更具可读性,但是当将其作为电子邮件 (gmail) 查看时,它显示的是完全未格式化的。我需要的是一种正确格式化我的电子邮件的方法我的代码:import boto3def publish_to_sns(sub, msg):    topic_arn = "<my sns arn>"    sns = boto3.client("sns")    response = sns.publish(        TopicArn=topic_arn,        Message=msg,        Subject=sub    )def final_status(f_name, row_count, staged_row_count, status):    sub = "Complete [{status}]: Process is complete".format(status=status)    msg = """        Process completed.        ------------------------------------------------------------------------------------        Summary of the process:        ------------------------------------------------------------------------------------        File Name    :   {file_name}        Status       :   {status}        Error        :   N/A        Rows Read    :   {r_read}        Rows Staged  :   {r_staged}        ------------------------------------------------------------------------------------        """.format(file_name=f_name, r_read=row_count, r_staged=staged_row_count, status=status)    publish_to_sns(sub, msg)我所看到的(冒号没有对齐):
查看完整描述

2 回答

?
皈依舞

TA贡献1851条经验 获得超3个赞

这应该可以帮助您修复空格:


def final_status(f_name, row_count, staged_row_count, status):

sub = "Complete [{status}]: Process is complete".format(status=status)

msg = """

    Process completed.


    ------------------------------------------------------------------------------------

    Summary of the process:

    ------------------------------------------------------------------------------------

    {a:<20}    :   {file_name}

    {b:<20}    :   {status}

    {c:<20}    :   N/A

    {d:<20}    :   {r_read}

    {e:<20}    :   {r_staged}

    ------------------------------------------------------------------------------------

    """.format(a='File Name', b = 'Status', c = 'Error', d = 'Rows Read', e = 'Rows Staged', file_name=f_name, r_read=row_count, r_staged=staged_row_count, status=status)

print(sub)

print(msg)


查看完整回答
反对 回复 2021-08-11
?
隔江千里

TA贡献1906条经验 获得超10个赞

我能够通过使用一个简单的 hack 来实现非常可读的格式。我所做的是从我的 IDE 中复制了整个字符串,并将其粘贴到我的 Gmail(我们正在使用 Gmail 套件)撰写邮件窗口中。

Gmail 中的无格式文本

//img1.sycdn.imooc.com//6113bd8e0001772b07300566.jpg

然后我将文本格式化为可读:

Gmail 中的格式化文本

//img1.sycdn.imooc.com//6113bd9a0001c0b407340558.jpg

然后我将整个字符串粘贴回我的 IDE。

IDE 中的格式化文本

//img1.sycdn.imooc.com//6113bda500012a0009960283.jpg

它奏效了!!!

现在通知对于利益相关者来说似乎更具可读性,并且考虑到 SNS 发送富文本消息的限制,这似乎是一个非常简单的方法。


查看完整回答
反对 回复 2021-08-11
  • 2 回答
  • 0 关注
  • 272 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信