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  


Related articles: