使用MIMEApplication将Pandas Dataframe转换为电子邮件附件

问题描述

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

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

代码导致以下错误

TypeError: expected bytes-like object,not nonetype

解决方法

文档是明确的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')