@bfesiuk

Получить файл с post-запроса (WildBerries)?

Здравствуйте, решил автоматизировать некоторые процессы по API WildBerries.
Запрос работает, все отлично. Но, запрос должен возвращать pdf-файл, пример:
620826ad289eb884613138.png
Код:
import requests

def get_pdf():
data = {
"orderIds": [199420617],
"type": "code128",
"width": 58,
}

headers = {"Authorization": "token"}

request = requests.post('https://suppliers-api.wildberries.ru/api/v2/orders...', headers=headers, json=data)
r_json = request.json()
print(r_json)
# pdf_data = str.encode(r_json['data']['file'])
#print(pdf_data)

Возвращает это:
{'error': False, 'errorText': '', 'additionalErrors': None, 'data': {'file': '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ZW5kb2JqCjIgMCBvYmoKPDwKL1Byb2NTZXQgWy9QREYgL1RleHQgL0ltYWdlQiAvSW1hZ2VDIC9JbWFnZUldCi9Gb250IDw8Ci9GMGE3NjcwNWQxOGUwNDk0ZGQyNGNiNTczZTUzYWEwYThjNzEwZWM5OSA1IDAgUgo+PgovWE9iamVjdCA8PAovSWIyOWE1OTcxZDkzZTZiODRhNDBmY2VhYjlmZmE0MGI1MDUyMmEzYzMgNiAwIFIKPj4KL0NvbG9yU3BhY2UgPDwKPj4KPj4KZW5kb2JqCjcgMCBvYmoKPDwKL1Byb2R1Y2VyICj+/wBGAFAARABGACAAMQAuADcpCi9DcmVhdGlvbkRhdGUgKEQ6MjAyMjAyMTIyMTMwMzUpCi9Nb2REYXRlIChEOjIwMjIwMjEyMjEzMDM1KQo+PgplbmRvYmoKOCAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovUGFnZXMgMSAwIFIKL05hbWVzIDw8Ci9FbWJlZGRlZEZpbGVzIDw8IC9OYW1lcyBbCiAgCl0gPj4KPj4KPj4KZW5kb2JqCnhyZWYKMCA5CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDQwNyAwMDAwMCBuIAowMDAwMDAxODA3IDAwMDAwIG4gCjAwMDAwMDAwMDkgMDAwMDAgbiAKMDAwMDAwMDExNiAwMDAwMCBuIAowMDAwMDAwNDk0IDAwMDAwIG4gCjAwMDAwMDA1OTAgMDAwMDAgbiAKMDAwMDAwMjAxNyAwMDAwMCBuIAowMDAwMDAyMTMwIDAwMDAwIG4gCnRyYWlsZXIKPDwKL1NpemUgOQovUm9vdCA4IDAgUgovSW5mbyA3IDAgUgo+PgpzdGFydHhyZWYKMjIyNwolJUVPRgo=', 'name': 'stickers.pdf', 'mimeType': 'application/pdf'}}

Вариант с сохранением в таком виде - не работает:
with open(f"D:\\Projects\\FBS-sticker\\data\\21.pdf", 'wb') as s:
s.write(pdf_data)

Буду очень рад какой-нибудь помощи. Заранее спасибо, всем добра!
  • Вопрос задан
  • 2452 просмотра
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
Это base64 закодированная строка

import base64

s.write(base64.b64decodepdf_data))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы