Urllib引用问题:处理来自latin-1数据库的字符

时间:2010-07-13 15:51:38

标签: python encoding urllib

我需要将â字符转换为可以传递给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())

当名称为Siân时,会产生urllib错误:

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 个答案:

答案 0 :(得分:2)

quote()函数需要str参数,而不是unicode。使用urllib2.quote(name.lower().encode('latin1'))(假设您的网站接受latin1编码)。