строка запроса синтаксиса с urllib в Python 2.4

Используя Python2.4.5 (не спрашивайте!) Я хочу разобрать строку запроса и получить dict в ответ. Должен ли я делать это «вручную», как это следует?

>>> qs = 'first=1&second=4&third=3' >>> d = dict([x.split("=") for x in qs.split("&")]) >>> d {'second': '4', 'third': '3', 'first': '1'} 

Не нашел полезного метода в urlparse .

3 Solutions collect form web for “строка запроса синтаксиса с urllib в Python 2.4”

У вас есть два варианта:

 >>> cgi.parse_qs(qs) {'second': ['4'], 'third': ['3'], 'first': ['1']} 

или

 >>> cgi.parse_qsl(qs) [('first', '1'), ('second', '4'), ('third', '3')] 

Значения в dict, возвращаемые cgi.parse_qs() являются списками, а не строками, чтобы обрабатывать случай, когда один и тот же параметр указан несколько раз:

 >>> qs = 'tags=python&tags=programming' >>> cgi.parse_qs(qs) {'tags': ['python', 'programming']} 

это решает раздражение:

 d = dict(urlparse.parse_qsl( qs ) ) 

лично я ожидал бы, что два будут встроены в оболочку в urlparse. в большинстве случаев я бы не прочь сбросить избыточный параметр, если такие существуют

 import urlparse qs = 'first=1&second=4&third=3&first=0' print dict(urlparse.parse_qsl(qs)) OR print urlparse.parse_qs(qs) 
Python - лучший язык программирования в мире.