可以用什么替代parse_qs函数
我有一段代码,用来解析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版本来试这个,所以不能保证一定有效。