【发布时间】:2012-11-27 09:30:40
【问题描述】:
我有这个代码
# -*- coding: utf8 -*-
__author__ = 'user'
import gdata.youtube.service
yt_service = gdata.youtube.service.YouTubeService()
query = gdata.youtube.service.YouTubeVideoQuery()
query.vq = u"не"
feed = yt_service.YouTubeQuery(query)
for yt_item in feed.entry:
print yt_item.GetSwfUrl()
我收到了这个错误:
回溯(最近一次通话最后一次):
文件“cyr_search.py”,第 7 行,在
feed = yt_service.YouTubeQuery(查询)
YouTubeQuery
中的文件“/Users/user/Documents/GrabaHeroku/graba_h_ve/lib/python2.7/site-packages/gdata/youtube/service.py”,第 1346 行 结果 = self.Query(query.ToUri())
文件“/Users/user/Documents/GrabaHeroku/graba_h_ve/lib/python2.7/site-packages/gdata/service.py”,第 1715 行,在 ToUri
返回 atom.service.BuildUri(q_feed, self)
文件“/Users/user/Documents/GrabaHeroku/graba_h_ve/lib/python2.7/site-packages/atom/service.py”,第 584 行,在 BuildUri
parameter_list = DictionaryToParamList(url_params, escape_params)
文件“/Users/user/Documents/GrabaHeroku/graba_h_ve/lib/python2.7/site-packages/atom/service.py”,第 551 行,在 DictionaryToParamList
对于参数,(url_parameters 或 {}).items()] 中的值
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib.py”,第 1275 行,在 quote_plus
返回报价(s,安全)
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib.py”,第 1268 行,引用
return ''.join(map(quoter, s))
KeyError: u'\u043d'
如何搜索非 ASCII。我需要对查询进行 url 编码吗?我以为图书馆会自己做。
【问题讨论】:
-
看起来 unicode 数据是直接传递给
urllib.quote函数的,所以您可能必须在将 Unicode 数据传递给查询之前自己对其进行编码。尝试使用query.vq = u"не".encode('utf8')看看会发生什么?
标签: python unicode youtube gdata