对python中url参数编码与解码的实例详解

yipeiwu_com6年前Python基础

一、简介

在python中url,对于中文等非ascii码字符,需要进行参数的编码与解码。

二、关键代码

1、url编码

对字符串编码用urllib.parse包下的quote(string, safe='/', encoding=None, errors=None)方法。

对json格式的参数名和值编码,用urllib.parse包下的

urlencode(query, doseq=False, safe='', encoding=None, errors=None, quote_via=quote_plus)方法。

2、url解码

解码用urllib.parse包下的unquote(string, encoding='utf-8', errors='replace')方法。

三、代码实例

from urllib.parse import quote, unquote, urlencode


def main():
 my_data = '好好学习'

 # url编码
 encode_data = quote(my_data)
 print("encode_data : %s " % encode_data)
 # url解码
 decode_data = unquote(encode_data)
 print("decode_data : %s " % decode_data)

 my_query = {'conent': '天天向上'}
 # url参数编码
 encode_query = urlencode(my_query)
 print("encode_query : %s " % encode_query)
 # url参数解码
 decode_query = unquote(encode_query)
 print("decode_query : %s " % decode_query)
 encode_url = 'http://127.0.0.1?'+encode_query
 # url解码
 decode_url = unquote(encode_url)
 print("decode_url : %s " % decode_url)


if __name__ == '__main__':
 main()

输出:

encode_data : %E5%A5%BD%E5%A5%BD%E5%AD%A6%E4%B9%A0 
decode_data : 好好学习 
encode_query : conent=%E5%A4%A9%E5%A4%A9%E5%90%91%E4%B8%8A 
decode_query : conent=天天向上 
decode_url : http://127.0.0.1?conent=天天向上 

以上这篇对python中url参数编码与解码的实例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python实现通过pil模块对图片格式进行转换的方法

本文实例讲述了python实现通过pil模块对图片格式进行转换的方法。分享给大家供大家参考。具体分析如下: python的pil模块相当的智能,如果你需要对图片格式进行转换,比如jpg转...

Java多线程编程中ThreadLocal类的用法及深入

ThreadLocal,直译为“线程本地”或“本地线程”,如果你真的这么认为,那就错了!其实,它就是一个容器,用于存放线程的局部变量,我认为应该叫做 ThreadLocalVariabl...

Python实现3行代码解简单的一元一次方程

本文所述实例为Python用3行代码实现解一元一次方程,代码简洁高效,具体用法如下: >>> solve("x - 2*x + 5*x - 46*(235-24)...

FFT快速傅里叶变换的python实现过程解析

FFT快速傅里叶变换的python实现过程解析

FFT是DFT的高效算法,能够将时域信号转化到频域上,下面记录下一段用python实现的FFT代码。 # encoding=utf-8 import numpy as np imp...

使用Python paramiko模块利用多线程实现ssh并发执行操作

1.paramiko概述 ssh是一个协议,OpenSSH是其中一个开源实现,paramiko是Python的一个库,实现了SSHv2协议(底层使用cryptography)。 有了Pa...