urllib.parse.urlencode

urlencode

from urllib import parse
from urllib.request import urlopen
from urllib import request values = {'username': 'xxxxxxxxx@qq.com', 'password': 'XXXX'}
data = parse.urlencode(values) # 提交类型不能为str,需要为byte类型
print(data,type(data)) # 'username=xxxxxxxxx%40qq.com&password=XXXX' <class 'str'> url = 'https://passport.csdn.net/account/login?from=http://my.csdn.net/my/mycsdn'
request = request.Request(url, data.encode("utf-8")) # 提交类型不能为str,需要为byte类型
response = urlopen(request)
print(response.read().decode())

from urllib.parse import unquote

from urllib.parse import unquote
from urllib.parse import urlencode d = {"a":1,"b":[2,"bbb","中国"],"c":"和平"}
d_urlencode = urlencode(d)
d1_urlencode = urlencode(d,encoding="gbk")
print(d_urlencode) # a=1&b=%5B2%2C+%27bbb%27%2C+%27%E4%B8%AD%E5%9B%BD%27%5D&c=%E5%92%8C%E5%B9%B3
print(d1_urlencode) # a=1&b=%5B2%2C+%27bbb%27%2C+%27%D6%D0%B9%FA%27%5D&c=%BA%CD%C6%BD # 解码
d_unquote = unquote(d_urlencode)
d1_unquote = unquote(d1_urlencode)
print(d_unquote) # a=1&b=[2,+'bbb',+'中国']&c=和平
print(d1_unquote) # a=1&b=[2,+'bbb',+'�й�']&c=��ƽ
d2_unquote = unquote(d1_urlencode,encoding="gbk") # 默认解码是utf-8
print(d2_unquote) # a=1&b=[2,+'bbb',+'中国']&c=和平

url转换为dict

from urllib import parse
url = "https://search.jd.com/search?coupon_batch=112280806&coupon_id=46034227333&qrst=1&rt=1&stop=1&vt=2&scc=1&psort=1&wtype=1&ev=exbrand_%E9%AD%85%E6%97%8F%EF%BC%88MEIZU%EF%BC%89%5Eexprice_0-1000%5E&uc=0&stock=0#J_searchWrap"
res = dict(parse.parse_qsl(url))
print(res) # {'https://search.jd.com/search?coupon_batch': '112280806', 'coupon_id': '46034227333', 'qrst': '1', 'rt': '1', 'stop': '1', 'vt': '2', 'scc': '1', 'psort': '1', 'wtype': '1', 'ev': 'exbrand_魅族(MEIZU)^exprice_0-1000^', 'uc': '0', 'stock': '0#J_searchWrap'} res = dict(parse.parse_qsl(url.partition("?")[2]))
print(res) # {'coupon_batch': '112280806', 'coupon_id': '46034227333', 'qrst': '1', 'rt': '1', 'stop': '1', 'vt': '2', 'scc': '1', 'psort': '1', 'wtype': '1', 'ev': 'exbrand_魅族(MEIZU)^exprice_0-1000^', 'uc': '0', 'stock': '0#J_searchWrap'} url='_from=R40&LH_BIN=1&_sop=13&LH_Complete=1&LH_Sold=1&_udlo=24&_udhi=48&_ipg=200&_pgn=1&_skc=0'
res = dict(parse.parse_qsl(url))
print(res) # {'_from': 'R40', 'LH_BIN': '1', '_sop': '13', 'LH_Complete': '1', 'LH_Sold': '1', '_udlo': '24', '_udhi': '48', '_ipg': '200', '_pgn': '1', '_skc': '0'}

django.http.request.QueryDict

django的request.GET类型实际是QueryDict,不过是不可变的mutable=False。

if __name__ == "__main__":
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "first_review.settings") from django.http.request import QueryDict qd3 = QueryDict("a=1&b=2",mutable=True)
qd3.update({"c":3})
qd3.setdefault("d","ddd")
qd3.setlistdefault("e",[555,"eee"])
print(qd3) # <QueryDict: {'a': ['1'], 'b': ['2'], 'c': [3], 'd': ['ddd'], 'e': [555, 'eee']}>
print(qd3.urlencode()) # a=1&b=2&c=3&d=ddd&e=555&e=eee django的QueryDict.urlencode()

QueryDict详细用法,类似于dict

url的param与dict转换的更多相关文章

  1. Swift3.0语言教程字符串与URL的数据转换与自由转换

    Swift3.0语言教程字符串与URL的数据转换与自由转换 Swift3.0语言教程字符串与URL的数据转换 Swift3.0语言教程字符串与URL的数据转换与自由转换,字符串中的字符永久保存除了可以 ...

  2. jquery分隔Url的param方法

    最近需要分隔url的querystring,用到了特意记录一下.方法: //获取url中的paramsvar search = location.search.substring(1);//param ...

  3. 带有中文的url和NSString中文的转换

    NSString *url = @"http://tw.news.yahoo.com/麵包魂東京吸睛-粉絲包圍導演-061222049.html"; NSLog(@"ur ...

  4. python string和dict转换

    字典(dict)转为字符串(string) 我们可以比较容易的将字典(dict)类型转为字符串(string)类型. 通过遍历dict中的所有元素就可以实现字典到字符串的转换: for key, va ...

  5. URL地址中的字符串转换

    url出现了有+,空格,/,?,%,#,&,=等特殊符号的时候,可能在服务器端无法获得正确的参数值,怎么解决?解决办法将这些字符转化成服务器可以识别的字符,对应关系如下:URL字符转义 用其它 ...

  6. URL中文参数,JSON转换,PHP赋值JS

    var jsonProps = { "dispMode":dispMode, "autoRun":autoRun, "clientPath" ...

  7. Python中xml和dict格式转换

    在做接口自动化的时候,请求数据之前都是JSON格式的,Python有自带的包来解决.最近在做APP的接口,遇到XML格式的请求数据,费了很大劲来解决,解决方式是:接口文档拿到的是XML,在线转化为js ...

  8. 位置信息类API调用的代码示例合集:中国省市区查询、经纬度地址转换、POI检索等

    以下示例代码适用于 www.apishop.net 网站下的API,使用本文提及的接口调用代码示例前,您需要先申请相应的API服务. 中国省市区查询:2017最新中国省市区地址 经纬度地址转换:经纬度 ...

  9. C#控制台程序取得INSOYA视频区的视频的真实URL,视频标题,发布时间集合。

    准备工作 起因是因为这个网站:http://i.youku.com/kmsfan 这个是一个叫做冒险岛的游戏的资讯论坛,以前我经常在里面传视频,现在我不玩这个游戏了,但是很多玩家还是经常到我的网站里面 ...

随机推荐

  1. MVC view操作(Razor语法)

    Razor,很有意思的剃刀.相较与之前开发WEB的方式,Razor真是轻松惬意. 下面说一下我使用Razor的一些心得. 页面中归根结底是一个输出字符串(HTML CSS JS等混合的字符串)的过程. ...

  2. KVM虚拟机IO处理过程(二) ----QEMU/KVM I/O 处理过程

    接着KVM虚拟机IO处理过程中Guest Vm IO处理过程(http://blog.csdn.net/dashulu/article/details/16820281),本篇文章主要描述IO从gue ...

  3. VRRP虚IP漂移

    简介 VRRP 是 Virtual Router Redundancy Protocol 的简称,即 虚拟路由冗余协议 . 原文地址:https://linux-network-programming ...

  4. ios开发网络篇—HTTP协议 - 转

    一.URL 1.基本介绍 URL的全称是Uniform Resource Locator(统一资源定位符) ,通过1个URL,能找到互联网唯一的1个资源 ,URL就是资源的地址,位置,互联网上的每个资 ...

  5. Linux基础-6.系统的启动过程

    Linux启动时我们会看到许多启动信息 Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 内核的引导 运行init 系统初始化 建立终端 用户登录系统 init程序的类型: ...

  6. 基于 HTML5 WebGL 的计量站三维可视化监控系统 Web 组态工控应用

    得益于 HTML5 WebGL 技术的成熟,从技术上对工控管理的可视化,数据可视化变得简单易行!完成对工控设备的管理效率,资源管理,风险管理等的大幅度提高,同时也对国家工业4.0计划作出有力响应! 如 ...

  7. php如何实现统计一个数字在排序数组中出现的次数(代码)

    统计一个数字在排序数组中出现的次数. 博客 www.51msk.cn 1.有序的数组查找,使用二分法2.二分法查找第一次出现的位置,二分法查找最后一次出现的位置,end - start +1 left ...

  8. IOCP详解

    http://blog.csdn.net/piggyxp/article/details/6922277 ps: 原作者很厉害了, 把一个iocp模型讲解的这么形象,不过在实践过程中发现一些细节说得有 ...

  9. 【安装Ecshop2.7.2网站(LAMP环境)】--实践

    LAMP : Linux + Apache + Mysql + PHPEcshop2.7.2 注意:在输入命令过程中,学会用tab键补全命令,不要对着照抄,很容易出错. 前置:A:先设置虚拟机中的CD ...

  10. IntelliJ IDEA 历史版本下载地址

    地址:https://confluence.jetbrains.com/display/IntelliJIDEA/Previous+IntelliJ+IDEA+Releases scala插件:htt ...