Форум сайта python.su
Всем добрый день.
Вожусь с автоматизацией REST API сервера.
На данный момент не могу принять картинку *.jpg в бинарном виде с сервера, при этом загрузить могу.
Проблема заключается в невозможности обработать каким-либо способом, приходящую строку.
Кто что может подсказать?
UPD. C base64 все было отлично, а вот бинари не могу записать в файл.
def downloadphoto(self, path):
l = open('pic.jpg', 'wb')
data = {'request': '{"phone":"+38012345678"}',
'request_name': 'GET_USER_PICTURE',
'request_type': 'HANDLE_FILES',
'requester_info': '{"referrer":"","device_id":"+3596520512229360680","device_phone_number":"+97253541213333"}'}
r = request(self.method, self.url, data=data, headers=self.headers)
source = r.text
print(source)
Отредактировано saw_tooth (Дек. 1, 2014 16:15:58)
Офлайн
Разобрался.
ответ: Читайте ВСЮ документацию, а не только те методы которые нужны.
для вывода бинарного контента есть метод
r.content
Офлайн
Есть второй подход, возможно более правильный для больших файлов
r = requests.get(url, stream=True) with open(local_filename, 'wb') as f: for chunk in r.iter_content(chunk_size=1024): if chunk: # filter out keep-alive new chunks f.write(chunk) f.flush()
Офлайн
vaxЭто не надо. with вызывает закрытие, а закрытие вызывает выталкивание.f.flush()
Офлайн