首页 > 解决方案 > 使用 Python 和 Airflow 在电子邮件中发送 Redshift 查询结果

问题描述

我正在制作一个每日 DAG,它将在 Redshift 中运行查询并将结果表通过电子邮件发送。

我目前设法获取查询结果并将其放入 DataFrame 中。我的问题是使用send_email(来自气流包)并为其选择参数以显示数据。

不幸的是,电子邮件的输出不是表格,只是结果到处都是文本。

这是我写的send_email

        html_content = f"""
                        <html><body><p>Hello,</p>
                        <p>Found {num_of_late_dags} Late DAGs:</p>
                        {late_dags}
                        <p>Regards,</p>
                        <p>Me</p>
                        </body></html>
                        """
        send_email(to=v_email_recipients_daily_report,
                   cc=cc,
                   bcc=bcc,
                   subject=f'Daily DAG Load Report',
                   html_content=html_content,
                   mime_subtype='alternative') ```

标签: htmlemailamazon-redshiftairflow

解决方案


更新:

我在inpd.to_html()之后使用过,但没有用。我在将数据创建为 DataFrame 时使用它。不知道为什么,他们也应该这样做。html_content.format(to_html())to_html()

所以它看起来像这样:df = pd.DataFrame(data, columns=['X',Y']).to_html()

然后把dfHTML 内容放进去就行了。


推荐阅读