2011-01-10 24 views
4

我有以下代碼來解析youtube提要並返回youtube電影ID。我怎麼能重寫這是Python 2.4兼容,我認爲不支持parse_qs函數?什麼可以用來代替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) 
+0

我認爲它已被移動:http://docs.python.org/library/urlparse.html#urlparse.parse_qs – joksnet 2011-01-10 12:05:19

回答

11

我假設你現有的代碼運行在2.6或更新的東西,你試圖回到2.4? parse_qs在移至urlparse之前,以前在cgi模塊中。嘗試import cgi,cgi.parse_qs

通過TryPyPy's評論的啓發,我想你可以做使在任何環境下你的源運行:

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嘗試了這一點,所以沒有承諾。

+0

是的,目前它是2.6,我需要降級到2.4 – mkrenge 2011-01-10 12:17:02

-1

我試過了,仍然沒有工作。

簡單地將parse_qs/qsl函數從cgi模塊複製到urlparse模塊更簡單。

問題解決。

相關問題