html - 使用 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') ```
解决方案
更新:
我在inpd.to_html()
之后使用过,但没有用。我在将数据创建为 DataFrame 时使用它。不知道为什么,他们也应该这样做。html_content
.format(to_html())
to_html()
所以它看起来像这样:df = pd.DataFrame(data, columns=['X',Y']).to_html()
然后把df
HTML 内容放进去就行了。
推荐阅读
- java - 单击按钮时如何清除 HBox 中的组合框?
- python - 输出到数据报告到多个txt文件
- python - 如何在不更改图像的情况下将 3d RGB NumPy 数组转换为浮点数?
- amazon-dynamodb - 如果结果值为正,则 DynamoDB ConditionExpression?
- java - 尝试使用 OJDBC8 库将 Java 应用程序连接到远程 Oracle 数据库
- sparql - SPARQL 教程的问题 - 第一个 SPARQL 查询
- javascript - 根据从列表中选择的项目删除数组元素
- hyperledger-fabric - Hyperledger Fabric 区块浏览器如何获取交易签名者的详细信息
- algorithm - 为什么cublas复制算法在cuda中这么快?
- c++ - 您好,我阅读了大约 10 个教程,但我一直收到错误,这是我的 Makefile 文件和错误