【问题标题】:Convert Pandas Dataframe to email Attachment using MIMEApplication使用 MIMEApplication 将 Pandas Dataframe 转换为电子邮件附件
【发布时间】:2024-04-29 06:10:07
【问题描述】:

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

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

此代码导致以下错误:

TypeError: expected bytes-like object, not NoneType

【问题讨论】:

    标签: python pandas email aws-lambda mime


    【解决方案1】:

    文档很清楚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')
    
    
    

    【讨论】: