LINUX.ORG.RU

[python] не могу отправить файл с помощью urllib

 


0

1

python 3.2
хочу залить с помощью urllib файл на сервер

посоветовали это - http://www.doughellmann.com/PyMOTW/urllib2/index.html#uploading-files

оно написано для ветки 2.х, поэтому пришлось немного исправить: http://pastebin.mozilla.org/1192545

теперь зашёл в тупик.
получаю вот что:

File «/home/python3/urllib_test/start_file.py», line 70, in __str__
return '\r\n'.join(flattened)
TypeError: sequence item 12: expected str instance, bytes found


а если заменить
'Content-Type: %s' % content_type,
",
body,

на
'Content-Type: %s' % content_type,
",
str(body),

получаю

raise TypeError(«POST data should be bytes»
TypeError: POST data should be bytes or an iterable of bytes. It cannot be str.

тело файла при этом превращается в
95y\x01\xb5\xfbk\xf7\xd7\xee\x07\x04[\x05[\

так что же тут можно сделать?

Ответ на: комментарий от Tanger

не помогло

нашел такой способ отправки:

request.add_data(bytes(body, 'utf8'))

но говорят что это неправильно, пока хз почему

sergey-novikov ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.