使用 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 内容中。
我正在制作一个每日 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 内容中。