可以用什么替代parse_qs函数

4 投票
2 回答
5958 浏览
提问于 2025-04-16 09:42

我有一段代码,用来解析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) 

2 个回答

-3

我试过了,但还是不行。

其实,把cgi模块里的parse_qs和qsl这两个函数直接复制到urlparse模块里要简单得多。

问题就解决了。

13

我猜你现在的代码是在2.6或者更新的版本上运行的,而你想要回退到2.4版本?之前,parse_qs这个功能是在cgi模块里的,后来才移到urlparse模块。你可以试试这样:import cgi,然后用cgi.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版本来试这个,所以不能保证一定有效。

撰写回答