urldecode 及转换为dict

urllib.parse

使用urllib.parse 来进行urlencode 和 urldecode 。
注意, import urllib会报错, 需要import urllib.parse
https://docs.python.org/3/library/urllib.parse.html#module-urllib.parse

urllib.parse.urlencode(query, doseq=False, safe='', encoding=None, errors=None, quote_via=quote_plus)
urllib.parse.``unquote`(*string*, *encoding='utf-8'*, *errors='replace'*)

将postData进行urldecode后,转换为dict

            # postData 为字符串,类似 id=1&name=zhangsan&age=19
            tmp = urllib.parse.unquote(response.request.postData)
            post = dict(map(lambda x: (x.split('=')), tmp.split('&')))
            log.info("获取数据,请求为: %s", post)
  1. 将字符串按&分割为列表
  2. 对于列表中每个元素,按等号分割,包装为一个元组 (x.split(=))
  3. 将元组转换为dict

类似的,可以将两个列表转换为dict

>>> aa =[1,2,3,4]
>>> bb =['a','b','c','d']
>>> dict(zip(bb,aa))
{'a': 1, 'b': 2, 'c': 3, 'd': 4}

将元组转换为dict

>>> a = [(1,2),(3,4),(5,6)]
>>> dict(a)
{1: 2, 3: 4, 5: 6}

你可能感兴趣的:(urldecode 及转换为dict)