Detailed explanation of url parameter coding and decoding example in python
- 2021-07-26 08:30:17
- OfStack
1. Introduction
In url of python, it is necessary to encode and decode parameters for non-ascii characters such as Chinese.
2. Key code
1. url coding
The string is encoded by quote (string, safe= '/', encoding=None, errors=None) under urllib. parse packet.
The parameter names and values of json format are encoded with urllib. parse package
urlencode (query, doseq=False, safe= '', encoding=None, errors=None, quote_via=quote_plus) method.
2. url decoding
unquote (string, encoding= 'utf-8', errors= 'replace') method under urllib. parse packet was used for decoding.
3. Code examples
from urllib.parse import quote, unquote, urlencode
def main():
my_data = ' Study hard '
# url Code
encode_data = quote(my_data)
print("encode_data : %s " % encode_data)
# url Decoding
decode_data = unquote(encode_data)
print("decode_data : %s " % decode_data)
my_query = {'conent': ' Make progress every day '}
# url Parameter coding
encode_query = urlencode(my_query)
print("encode_query : %s " % encode_query)
# url Parameter decoding
decode_query = unquote(encode_query)
print("decode_query : %s " % decode_query)
encode_url = 'http://127.0.0.1?'+encode_query
# url Decoding
decode_url = unquote(encode_url)
print("decode_url : %s " % decode_url)
if __name__ == '__main__':
main()
Output:
encode_data : %E5%A5%BD%E5%A5%BD%E5%AD%A6%E4%B9%A0
decode_data : Study hard
encode_query : conent=%E5%A4%A9%E5%A4%A9%E5%90%91%E4%B8%8A
decode_query : conent= Make progress every day
decode_url : http://127.0.0.1?conent= Make progress every day