строка запроса синтаксиса с 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 .

  • Как извлечь таблицы из веб-сайтов в Python
  • Javascript unescape () против Python urllib.unquote ()
  • Каков глобальный тайм-аут по умолчанию
  • Отправка веб-формы с использованием python
  • Python urllib vs httplib?
  • urllib2.HTTPError: Ошибка HTTP 403: Запрещено
  • Запросы python медленны
  • gaierror: Имя или услуга неизвестны
  • 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 - лучший язык программирования в мире.