Ошибка ascii двоичных данных Python при кодировании в multipart - PullRequest
0 голосов
/ 23 сентября 2011

Я использую этот рецепт поваренной книги для кодирования изображений в виде составных данных для загрузки в Twitter.

Когда я запускаю код для упаковки изображения в оболочку django, все запускаетсяхорошо (даже операторы print, которые я использовал для отладки тела сообщения с двоичными данными), но когда я пытаюсь запустить один и тот же скрипт из команды django или намного более простой скрипт на чистом python, я получаю эту ошибку:

body = '\r\n'.join(body)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 0: ordinal not in range(128)

Итак, почему это происходит только тогда, когда я запускаю скрипт, а не из оболочки / CLI?

Спасибо всем, кто может просветить меня в этом:)

Ответы [ 2 ]

0 голосов
/ 24 сентября 2011

Я узнал, что это связано с результатами моего запроса. Они были возвращены в юникоде, и я использовал это значение для создания пути к своему изображению, например:

image_path = "/my/path/%s.jpg" % model.name

model.name было что-то вроде u'model1 'Я распечатал эти значения и удалил нотацию u' (старым методом замены: P) из строк, все работало нормально.

Что меня очень расстроило, так это то, что ошибка указывала на '\ r \ n'.join, а не на что-то, связанное с именем моего файла.

0 голосов
/ 24 сентября 2011

Я думаю, что это связано с этим вопросом.Помог ли вам ответ, предоставленный там?

...