simple_salesforce Python パッケージを使用して、Python で生成された PDF を Salesforce オブジェクトへの添付ファイルとしてアップロードしようとしています。これを達成するためにいくつかの異なる方法を試しましたが、今のところうまくいきません。ここにコードがあります
import base64
import json
from simple_salesforce import Salesforce
instance = ''
sessionId = sf.session_id
def pdf_encode(pdf_filename):
body = open(pdf_filename, 'rb') #open binary file in read mode
body = body.read()
body = base64.encodebytes(body)
body = pdf_encode('PDF_Report.pdf')
response = requests.post('https://%s.salesforce.com/services/data/v29.0/sobjects/Attachment/' % instance,
headers = { 'Content-Type': 'application/json', 'Authorization': 'Bearer %s' % sessionId },
data = json.dumps({
'ParentId': parent_id,
'Name': 'test.txt',
'body': body
})
)
このエラーが発生します。
TypeError: Object of type bytes is not JSON serializable
私も使ってみました
body = base64.encodebytes(body).decode('ascii')
私のコードでは、それを機能させることもできません。エラーが発生します
UnicodeError: encoding with 'idna' codec failed (UnicodeError: label empty or too long)
simple_salesforce を使用して Python 3 の PDF を添付ファイルとして Salesforce にアップロードする方法について何か提案はありますか?