2011-01-10 1 views
4

다음과 같은 코드를 사용하여 YouTube 피드를 파싱하고 YouTube 동영상 ID를 반환합니다. 내가 이것을 parse_qs 함수를 지원하지 않는다고 생각하는 파이썬 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) 
+0

내가 옮겼다 고 생각합니다 : http://docs.python.org/library/urlparse.html#urlparse.parse_qs – joksnet

답변

11

기존 코드가 2.6 이상으로 실행되고 2.4로 돌아가려고한다고 가정합니다. parse_qsurlparse으로 이동하기 전에 cgi 모듈에있었습니다. import cgi, cgi.parse_qs을 시도해보십시오. 그래서 약속,

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가 없습니다 : TryPyPy's 코멘트에서 영감을

, 난 당신을 수행하여 두 환경에서 소스 실행을 할 수 있다고 생각하지 않습니다.

+0

예 현재 2.6이고 2.4로 다운 그레이드해야합니다 – mkrenge

+0

그래서 사용하십시오 :'try : from cgi import parse_qs; urlparse.parse_qs = parse_qs \ n ImportError 제외 : pass' – TryPyPy

+0

@TryPyPy - 대답 해주십시오. 내 표를 얻을거야! – mtrw

-1

나는 그것을 시험해 보았다. 그리고 아직도. 그것은 작용하지 않고 있었다.

parse_qs/qsl 함수를 cgi 모듈에서 urlparse 모듈로 복사하는 것이 더 쉽습니다.

문제가 해결되었습니다.