【发布时间】:2017-12-09 13:41:09
【问题描述】:
我正在尝试使用 R/Python 和 Sendgrid 的电子邮件 API 构建客户端报告引擎。我可以发送电子邮件,但我需要做的最后一件事是附上客户的 CSV 报告。
我尝试了多种方法,包括对文件进行 base64 编码以及将字符串从 R 写入磁盘到 python,但没有运气。也就是说,我似乎陷入了这个错误:
TypeError: 'bytes' 类型的对象不是 JSON 可序列化的
我的代码是:
with open('raw/test-report.csv', 'rb') as fd:
b64data = base64.b64encode(fd.read())
attachment = Attachment()
attachment.content = b64data
attachment.filename = "your-lead-report.csv"
mail.add_attachment(attachment)
令人困惑的是,如果我只是将b64data 替换为该行
attachment.content = 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gQ3JhcyBwdW12'
一封带有附件的电子邮件。
供参考,我一直在使用:
https://github.com/sendgrid/sendgrid-python
和
在我的项目的最后一步之前没有任何问题。
任何帮助将不胜感激。值得注意的是,我的强项在R,但我通常可以借助互联网在python 中一起破解。
【问题讨论】: