Проблема цитирования Urllib: работа с символами из базы данных latin-1

1

Мне нужно получить символ â в формате, который может быть передан URL. Я получаю некоторые имена как список json, а затем передаю их в другом месте.

result = json.load(urllib2.urlopen(LIST_URL), encoding='latin-1')
for item in result:
    name = item["name"]
    print name
    print urllib2.quote(name.lower())

Это приводит к ошибке urllib, когда имя Siân:

Siân
Line 24 - print urllib2.quote(mp_name.lower())
/usr/lib/python2.6/urllib.py -- quote((s=u'si\xe2n', safe='/'))
KeyError(u'\xe2')

Пожалуйста, кто-нибудь может посоветовать?

Теги:
encoding
urllib

1 ответ

2
Лучший ответ
Для функции

quote() требуется аргумент str, а не unicode. Используйте urllib2.quote(name.lower().encode('latin1')) (предполагая, что ваш сайт принимает кодировку latin1).

  • 0
    Спасибо! Но почему item ["name") отображается как Unicode? Разве я не указываю encoding = 'latin-1' в моем запросе json? Пожалуйста, помогите мне понять ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню