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. 2.编写实现:有一个三角形类Triangle,成员变量有底边x和另一条边y,和两边的夹角a(0<a<180),a为静态成员,成员方法有两个:求面积s(无参数)和修改角度(参数为角度)。 编写实现: 构造函数为 Triangle(int xx,int yy,int aa) 参数分别为x,y,a赋值 在main方法中构造两个对象,求出其面积,然后使用修改角度的方法,修改两边的夹角,再求出面积值。(提示

    求高的方法 h=y*Math.sin(a) 按题目要求,需要我们做的分别是:1.改角度2.显示角度3.求面积并显示 代码用到:1.静态成员变量以修改角度2.数学函数 以下具体代码具体分析 import ...

  2. HDU 1715 (大数相加,斐波拉契数列)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1715 大菲波数 Time Limit: 1000/1000 MS (Java/Others)     ...

  3. Javascript中的继承与Prototype

    之前学习js仅仅是把w3school上的基本语法看了一次而已,再后来细看书的时候,书中会出现很多很多没有听过的语法,其中一个就是js的继承以及总能看到的prototype.我主要在看的两本js书是&l ...

  4. 目前.NET Core创建Windows Service比较好的一个开源框架:DasMulli.Win32.ServiceUtils

    新建一个.NET Core控制台程序,搜索并下载Nuget包:DasMulli.Win32.ServiceUtils GitHub 链接及使用指南 Write a windows service us ...

  5. Homebrew 使用指南

    Homebrew 是 MacOSX 上的软件包管理工具. 安装 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.co ...

  6. 二、Delphi10.3在不下载文件情况下读取网站文件大小等信息

    一.上源码 uses TxHttp, Classes, TxCommon, Frm_WebTool, SysUtils; var m_Url: string; m_Http: TTxHttp; m_P ...

  7. Mschart的Annotations属性使用

    近期项目中用到了SPC统计功能,以前是用GDI+绘制的图表,由于坐标计算不准确,显示有偏差,于是重构了代码,将算法与图表做了分离.图表部分如果需要WPF的实现,可以参考以下两个开源项目. https: ...

  8. 用margin实现两列布局中的自适应列

    <div id="wrapper"> <div id="col1"> "fixed" </div> &l ...

  9. mysql 5.7.12 winx64安装配置方法图文教程

    这篇文章主要为大家分享了mysql 5.7.12winx64安装配置方法图文教程,感兴趣的朋友可以参考一下   之前安装mysql时未做总结,换新电脑,补上安装记录,安装的时候,找了些网友的安装记录, ...

  10. 20155327Exp2 后门原理与实践

    20155327Exp2 后门原理与实践 一.实验说明 任务一:使用netcat获取主机操作Shell,cron启动 (0.5分) 任务二:使用socat获取主机操作Shell, 任务计划启动 (0. ...