我试图使用R/Python和Sendgrid的emailapi构建一个客户端报告引擎。我可以发电子邮件,但最后一件事,我需要做的是附上一个客户的CSV报告。在
我尝试了很多方法,包括base64编码文件,将字符串从R写到python,但运气不好。也就是说,我似乎陷入了这个错误:
TypeError: Object of type 'bytes' is not JSON serializable
我的代码是:
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
替换为行
电子邮件随附件一起发送。在
作为参考,我一直在使用:
https://github.com/sendgrid/sendgrid-python
以及
直到我项目的最后一步才有任何问题。在
任何帮助将不胜感激。值得注意的是,我的优势在于R
,但我通常可以借助互联网在python
中把东西组合起来。在
在将
b64data
分配给attachment.content
之前,需要将b64data
转换为常规字符串。Sendgrid构建了一个JSON负载,它在请求中发送它,因此它不知道如何序列化分配给attachment.content
的值,在本例中是bytestring
。在参考文献:
相关问题 更多 >
编程相关推荐