首页 > 解决方案 > 使用 MIMEApplication 将 Pandas Dataframe 转换为电子邮件附件

问题描述

我正在使用 MIMEApplication 将我的数据框转换为附件,并且在发生这种情况时看到以下错误。下面是我的上下文代码:

att = MIMEApplication(dataframe)
att.add_header('Content-Disposition','attachment; filename='+ 'test.csv')

此代码导致以下错误:

TypeError: expected bytes-like object, not NoneType

标签: pythonpandasemailaws-lambdamime

解决方案


文档很明确MIMEApplicationdata参数必须是字符串。显然,数据框是二进制对象。所以选择你的字符串表示形式.... CSV、HTML 等

import pandas as pd
import email.mime.application

sf = pd.DataFrame(columns=[tuple([f"label{i//2}",f"f{i+1}"]) for i in range(6)])
sf = sf.reindex(pd.MultiIndex.from_tuples(sf.columns), axis=1)

att = email.mime.application.MIMEApplication(sf.to_csv())
att.add_header('Content-Disposition','attachment; filename='+ 'test.csv')



推荐阅读