Python urlencode和unquote函数使用实例解析

当url地址含有中文,或者参数有中文的时候,这个算是很正常了,但是把这样的url作为参数传递的时候(最常见的callback),需要把一些中文甚至'/'做一下编码转换。

所以对于一些中文或者字符,url不识别的,则需要进行转换,转换结果如下:

一、urlencode

urllib库里面有个urlencode函数,可以把key-value这样的键值对转换成我们想要的格式,返回的是a=1&b=2这样的字符串,比如:

import urllib.parse
values={}
values['username']='02蔡彩虹'
values['password']='ddddd?'
url="http://www.baidu.com"
data=urllib.parse.urlencode(values)
print(data)

结果如下:

如果只想对一个字符串进行urlencode转换,怎么办?urllib提供另外一个函数:quote()

import urllib.parse
s='长春'
s=urllib.parse.quote(s)
print(s)

输出结果为:

二、urldecode

当urlencode之后的字符串传递过来之后,接受完毕就要解码了——urldecode。urllib提供了unquote()这个函数,可没有urldecode()!

s='%E5%B9%BF%E5%B7%9E'
s=urllib.parse.unquote(s)
print(s)

输出结果为:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Python3的urllib.parse常用函数小结(urlencode,quote,quote_plus,unquote,unquote_plus等)

    本文实例讲述了Python3的urllib.parse常用函数.分享给大家供大家参考,具体如下: 1.获取url参数 >>> from urllib import parse >>> url = r'https://docs.python.org/3.5/search.html?q=parse&check_keywords=yes&area=default' >>> parseResult = parse.urlparse(url) &

  • Python2和Python3中urllib库中urlencode的使用注意事项

    前言 在Python中,我们通常使用urllib中的urlencode方法将字典编码,用于提交数据给url等操作,但是在Python2和Python3中urllib模块中所提供的urlencode的包位置有些不同. 对于Python2 Python2中提供了urllib和urllib2两个模块. urlencode方法所在位置为: urllib.urlencode(values) # 其中values为所需要编码的数据,并且只能为字典 例如模拟登陆CSDN网站,示例程序如下 import url

  • python中urllib.unquote乱码的原因与解决方法

    发现问题 Python中的urllib模块用来处理url相关的操作,unquote方法对应javascript中的urldecode方法,它对url进行解码,把类似"%xx"的字符替换成单个字符,例如:"%E6%B3%95%E5%9B%BD%E7%BA%A2%E9%85%92"解码后会转换成"法国红酒",但是使用过程中,如果姿势不对,最终转换出来的字符会是乱码"法国红é-". 笔者在一个真实的Tornado应用中就

  • 解决python 3 urllib 没有 urlencode 属性的问题

    今天在pycharm(我用的python3)练习的时候,发现报了个AttributeError: module 'urllib' has no attribute 'urlencode'的错误.后来发现python2和python3的urllib结构不一样. 下面我用pycharm中python3演示一下: 错误例子: import urllib import urllib.parse wd = {"wd":"传智播客"} print(urllib.urlencod

  • Python3中urlencode和urldecode的用法详解

    在Python3中,将中文进行urlencode编码使用函数 urllib.parse.quote(string, safe='/', encoding=None, errors=None) 而将编码后的字符串转为中文,则使用 urllib.parse.unquote(string, encoding='utf-8', errors='replace') 示例代码如下: test = "微信公众账号比特量化" print(test) new = urllib.parse.quote(t

  • Python urlencode和unquote函数使用实例解析

    当url地址含有中文,或者参数有中文的时候,这个算是很正常了,但是把这样的url作为参数传递的时候(最常见的callback),需要把一些中文甚至'/'做一下编码转换. 所以对于一些中文或者字符,url不识别的,则需要进行转换,转换结果如下: 一.urlencode urllib库里面有个urlencode函数,可以把key-value这样的键值对转换成我们想要的格式,返回的是a=1&b=2这样的字符串,比如: import urllib.parse values={} values['user

  • Python随机数函数代码实例解析

    这篇文章主要介绍了Python随机数函数代码实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 ''' choice(seq) 从序列的元素中随机选出一个元素 randrange ([start,] stop [,step]) 从指定范围内,在指定步长递增的集合中 获取一个随机数,步长默认为 1 .注:不包含 stop 值 random() 随机生成下一个实数,它在[0,1)范围内. shuffle(lst) 将序列的所有元素随机排序,返回

  • Python建立Map写Excel表实例解析

    本文主要研究的是用Python语言建立Map写Excel表的相关代码,具体如下. 前言:我们已经能够很熟练的写Excel表相关的脚本了.大致的操作就是,从数据库中取数据,建立Excel模板,然后根据模板建立一个新的Excel表,把数据库中的数据写入.最后发送邮件.之前的一篇记录博客,写的很标准了.这里我们说点遇到的新问题. 我们之前写类似脚本的时候,有个问题没有考虑过,为什么要建立模板然后再写入数据呢?诶-其实也不算是没考虑过,只是懒没有深究罢了.只求快点完成任务... 这里对这个问题进行思考阐

  • Python多线程threading和multiprocessing模块实例解析

    本文研究的主要是Python多线程threading和multiprocessing模块的相关内容,具体介绍如下. 线程是一个进程的实体,是由表示程序运行状态的寄存器(如程序计数器.栈指针)以及堆栈组成,它是比进程更小的单位. 线程是程序中的一个执行流.一个执行流是由CPU运行程序代码并操作程序的数据所形成的.因此,线程被认为是以CPU为主体的行为. 线程不包含进程地址空间中的代码和数据,线程是计算过程在某一时刻的状态.所以,系统在产生一个线程或各个线程之间切换时,负担要比进程小得多. 线程是一

  • Python三元运算与lambda表达式实例解析

    这篇文章主要介绍了Python三元运算与lambda表达式实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 三元运算是if...else...的简化版,lambda表达式是函数的简化版 三元运算(三目运算) # 判断两个数中的较大者 fun(a1,a2): return a1 if a1>a2 else a2 v = fun(5,2) print (v) # v = 5 lambda运算(一行运算符) #规范 lambda 参数1,参数2

  • Python属性和内建属性实例解析

    这篇文章主要介绍了Python属性和内建属性实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1. 私有属性添加getter和setter方法 class Money(object): def __init__(self): self.__money = 0 def getMoney(self): return self.__money def setMoney(self, value): if isinstance(value, int

  • python高级内置函数用法实例

    1.enumerate返回针对序列类型的可迭代对象的枚举对象. 2.eval取出字符串中的内容. 将str中有效的表达式返回计算结果. 3.exec运行编译后的字符串. 4.filter过滤器筛选出想要的对象. 实例 list1 = [1,'ok',3,'kkk'] s = enumerate(list1) print(s)#<enumerate object at 0x000002D2CC666DB8>生成一个枚举对象 for i in s: print(i) #(0, 1) # (1, '

  • python 调用c语言函数的实例讲解

    虽然python是万能的,但是对于某些特殊功能,需要c语言才能完成.这样,就需要用python来调用c的代码了 具体流程: c编写相关函数 ,编译成库 然后在python中加载这些库,指定调用函数. 这些函数可以char ,int, float, 还能返回指针. 以下示例: 通过python调用c函数,返回"hello,world 字符串" 新建c语言文件 hello.c touch hello.c #include <stdio.h> char *get_str() {

  • python使用json序列化datetime类型实例解析

    使用python的json模块序列化时间或者其他不支持的类型时会抛异常,例如下面的代码: # -*- coding: cp936 -*- from datetime import datetime import json if __name__=='__main__': now = datetime.now() json.dumps({'now':now}) 运行会出现下面的错误信息: Traceback (most recent call last): File "C:\Users\xx\De

  • python删除过期log文件操作实例解析

    本文研究的主要是python删除过期log文件的相关内容,具体介绍如下. 1. 用Python遍历目录 os.walk方法可以很方便的得到目录下的所有文件,会返回一个三元的tupple(dirpath, dirnames, filenames),其中,dirpath是代表目录的路径,dirnames是一个list,包含了dirpath下的所有子目录的名字,filenames是一个list,包含了非目录的文件,如果需要得到全路径,需要使用os.path.join(dirpath,name).例如t

随机推荐