- urllib模块url编码和解码:
1.urllib.quote,urllib.quote_plus ,urllib.unquote ,urllib.unquote_plus
urllib.quote 说明:
quote(s, safe='/') quote('abc def') -> 'abc%20def' Each part of a URL, e.g. the path info, the query, etc., has a different set of reserved characters that must be quoted. RFC 2396 Uniform Resource Identifiers (URI): Generic Syntax lists the following reserved characters. reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | "," Each of these characters is reserved in some component of a URL, but not necessarily in all of them. By default, the quote function is intended for quoting the path section of a URL. Thus, it will not encode '/'. This character is reserved, but in typical usage the quote function is being called on a path where the existing slash characters are used as reserved characters.(END)
urllib.quote_plus 说明:
quote_plus(s, safe='') Quote the query fragment of a URL; replacing ' ' with '+'
实例演示:
In [18]: urllib.quote('abc def')Out[18]: 'abc%20def'In [19]: urllib.quote_plus('abc def')Out[19]: 'abc+def'
2.urllib.urlencode
urlencode(query, doseq=0) Encode a sequence of two-element tuples or dictionary into a URL query string. If any values in the query arg are sequences and doseq is true, each sequence element is converted to a separate parameter. If the query arg is a sequence of two-element tuples, the order of the parameters in the output will match the order of parameters in the input.(END)
实例演示:
In [21]: urllib.urlencode({'username':'xixi','passward':'haha'})Out[21]: 'username=xixi&passward=haha'In [23]: urllib.urlencode((('username','嘻嘻'),('passward','哈哈')))Out[23]: 'username=%E5%98%BB%E5%98%BB&passward=%E5%93%88%E5%93%88'