使用 Python 和 Airflow 在电子邮件中发送 Redshift 查询结果

Sending Redshift Query Result in Email with Python and Airflow

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

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

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

这是我为 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') ```

更新:

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

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

然后将 df 放入 HTML 内容中。