簡體   English   中英

為Sendgrid的Email API編碼CSV文件

[英]Encode CSV file for Sendgrid's Email API

我正在嘗試使用R / Python和Sendgrid的Email 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一起破解。

在將b64data分配給attachment.content之前,需要將b64data轉換為常規字符串。 Sendgrid構建一個JSON有效負載,它在請求中發送,因此它不知道如何序列化分配給attachment.content的值,在這種情況下是一個bytestring

str(b64data,'utf-8')

參考文獻:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM