代码之家  ›  专栏  ›  技术社区  ›  Johannes Charra

在Python 2.4中使用urllib解析查询字符串

  •  11
  • Johannes Charra  · 技术社区  · 16 年前

    使用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 回复  |  直到 16 年前
        1
  •  23
  •   Pär Wieslander    16 年前

    您有两个选择:

    >>> 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']}
    
        2
  •  9
  •   Berry Tsakala    12 年前

    这就解决了烦恼:

    d = dict(urlparse.parse_qsl( qs ) )
    

        3
  •  1
  •   Shariq    12 年前
    import urlparse
    qs = 'first=1&second=4&third=3&first=0'
    
    print dict(urlparse.parse_qsl(qs))
    
    OR
    
    print urlparse.parse_qs(qs)