Я пытаюсь загрузить PDF-файл, сгенерированный в Python, как вложение к объекту salesforce, используя пакет simple_salesforce Python. Я пробовал несколько разных способов сделать это, но пока не повезло. Вот код
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)
Любые предложения о том, как загрузить PDF-файл из Python 3 в Salesforce в качестве вложения с использованием simple_salesforce?