0

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 にアップロードする方法について何か提案はありますか?

4

1 に答える 1