0

我有这个代码

# -*- 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(query)
文件“/Users/user/Documents/GrabaHeroku/graba_h_ve/lib/python2.7/site-packages/ gdata/youtube/service.py”,第 1346 行,在 YouTubeQuery
结果 = 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 行,引用
返回 ''.join(map(quoter, s))
KeyError: u'\u043d'

如何搜索非 ASCII。我需要对查询进行 url 编码吗?我以为图书馆会自己做。

4

1 回答 1

0

改成:

query.vq = u"не".encode('utf8')

字符串在发送之前需要进行编码。

于 2012-11-28T18:39:01.743 回答