Python中的urlencode和urldecode

本文最后更新于2016年9月18日,已超过 1 年没有更新,如果文章内容失效,还请反馈给我,谢谢!

=Start=

缘由:

在用Python发起网络请求的时候,有一些场景会需要对传入的参数进行URL编码后再进行请求,在这里记录一下用Python进行URL编解码的方法和在实际使用过程中碰到和解决的问题,方便以后参考。

正文:

参考解答:
方法1(针对字符、字符串的URL编解码):

URL编码:urllib.quote()函数(在处理空格的时候,urllib.quote()会将空格替换成「%20」,而urllib.quote_plus()会将空格替换成「+」号)

URL解码:urllib.unquote()函数(对应的还有一个urllib.unquote_plus()函数,会将字符串中的「+」替换成空格)

方法2(针对dict格式的数据的URL编码):

URL编码:urllib.urlencode()函数,但这个函数只能接收「键-值」格式的数据。即只针对dict的,并且目前不提供urldecode方法:

方法2的扩展:

对于同名的URL参数,urllib.urlencode只会返回对最后一个的编码值:

所以如果希望能在URL中放多个同名的参数,有两个方法:

方法一:在for循环中进行urllib.urlencode调用,最后拼接

比如:

方法二:在requests中的params参数里面设置key的值为一个list

比如:

参考链接:

=END=

声明: 除非注明,ixyzero.com文章均为原创,转载请以链接形式标明本文地址,谢谢!
https://ixyzero.com/blog/archives/2863.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注