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

Мне нужно получить символ â в формате, который можно передать по 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')

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

1 Ответ

2 голосов
/ 13 июля 2010

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

...