4

我有以下代码用于解析 youtube 提要并返回 youtube 电影 ID。如何将其重写为与 python 2.4 兼容,我认为它不支持parse_qs功能?

YTSearchFeed = feedparser.parse("http://gdata.youtube.com" + path)
videos = []
for yt in YTSearchFeed.entries:
    url_data = urlparse.urlparse(yt['link']) 
    query = urlparse.parse_qs(url_data[4])
    id = query["v"][0]
    videos.append(id) 
4

2 回答 2

12

我假设您现有的代码在 2.6 或更新版本中运行,而您正试图回到 2.4? 在它被移动到之前曾经parse_qs在模块中。试试,。cgiurlparseimport cgicgi.parse_qs

TryPyPy评论的启发,我认为您可以通过以下方式使您的源代码在任一环境中运行:

import urlparse # if we're pre-2.6, this will not include parse_qs
try:
    from urlparse import parse_qs
except ImportError: # old version, grab it from cgi
    from cgi import parse_qs
    urlparse.parse_qs = parse_qs

但我没有 2.4 来尝试这个,所以没有承诺。

于 2011-01-10T12:05:48.967 回答
-3

我试过了,但仍然......它不起作用。

简单地将 parse_qs/qsl 函数从 cgi 模块复制到 urlparse 模块更容易。

问题解决了。

于 2011-01-28T18:10:49.277 回答