url的param与dict转换
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()
url的param与dict转换的更多相关文章
- Swift3.0语言教程字符串与URL的数据转换与自由转换
Swift3.0语言教程字符串与URL的数据转换与自由转换 Swift3.0语言教程字符串与URL的数据转换 Swift3.0语言教程字符串与URL的数据转换与自由转换,字符串中的字符永久保存除了可以 ...
- jquery分隔Url的param方法
最近需要分隔url的querystring,用到了特意记录一下.方法: //获取url中的paramsvar search = location.search.substring(1);//param ...
- 带有中文的url和NSString中文的转换
NSString *url = @"http://tw.news.yahoo.com/麵包魂東京吸睛-粉絲包圍導演-061222049.html"; NSLog(@"ur ...
- python string和dict转换
字典(dict)转为字符串(string) 我们可以比较容易的将字典(dict)类型转为字符串(string)类型. 通过遍历dict中的所有元素就可以实现字典到字符串的转换: for key, va ...
- URL地址中的字符串转换
url出现了有+,空格,/,?,%,#,&,=等特殊符号的时候,可能在服务器端无法获得正确的参数值,怎么解决?解决办法将这些字符转化成服务器可以识别的字符,对应关系如下:URL字符转义 用其它 ...
- URL中文参数,JSON转换,PHP赋值JS
var jsonProps = { "dispMode":dispMode, "autoRun":autoRun, "clientPath" ...
- Python中xml和dict格式转换
在做接口自动化的时候,请求数据之前都是JSON格式的,Python有自带的包来解决.最近在做APP的接口,遇到XML格式的请求数据,费了很大劲来解决,解决方式是:接口文档拿到的是XML,在线转化为js ...
- 位置信息类API调用的代码示例合集:中国省市区查询、经纬度地址转换、POI检索等
以下示例代码适用于 www.apishop.net 网站下的API,使用本文提及的接口调用代码示例前,您需要先申请相应的API服务. 中国省市区查询:2017最新中国省市区地址 经纬度地址转换:经纬度 ...
- C#控制台程序取得INSOYA视频区的视频的真实URL,视频标题,发布时间集合。
准备工作 起因是因为这个网站:http://i.youku.com/kmsfan 这个是一个叫做冒险岛的游戏的资讯论坛,以前我经常在里面传视频,现在我不玩这个游戏了,但是很多玩家还是经常到我的网站里面 ...
随机推荐
- CentOS7.2安装mysql
1. 下载Mysql yum包 http://dev.mysql.com/downloads/repo/yum/ 复制链接使用wget下载 wget http://repo.mysql.com/mys ...
- OpenCV——RGB和HSV颜色空间
RGB颜色空间 在RGB中,一幅图像有三个独立的图像平面或通道组成:红,绿,蓝(以及第四个通道透明度). RGB颜色表 资料:网络 ◇ 编制:王践舜 RGB(255,23,140)是光的三原色,也 ...
- B. Fafa and the Gates
http://codeforces.com/problemset/problem/935/B Two neighboring kingdoms decided to build a wall betw ...
- c模拟银行家资源分配算法
#include<stdio.h> #define PNUMBER 5//进程个数 #define SNUMBER 3//资源种类个数 //资源的种类,三种 char stype[SNUM ...
- nagios-4.0.8 安装部署
1.Nagios工作原理 Nagios周期性调用插件检测服务器状态,并维持一个队列,所有插件返回状态信息都进入队列,Nagios每次从队首开始读取信息,并把状态通过web显示. 安装完成后,在nagi ...
- FFMpeg笔记(一) 使用FFmpeg将任意格式图片转换成任意格式图片
void SrcToDest(char* pSrc, char* pDest,unsigned int nSrcWidth, unsigned int nSrcHeight, AVPixelForma ...
- css权威指南学习笔记--列表与生成内容
列表属性 1.list-style-type:css2多于css2.1 2.list-style-image:有继承,子级列表会继承该图像 3.list-style-position:inside|o ...
- BZOJ2595: [Wc2008]游览计划(斯坦纳树,状压DP)
Time Limit: 10 Sec Memory Limit: 256 MBSec Special JudgeSubmit: 2030 Solved: 986[Submit][Status][ ...
- MySQL数据库 utf-8与utf8mb4
MySQL的“utf8”实际上不是真正的UTF-8. MySQL中的“utf8”只支持每个字符最多三个字节,而真正的UTF-8是每个字符最多四个字节. MySQL ...
- jQuery----五星好评实现
在美团.淘宝.京东等网页上,有许多商品.服务评价页面,五星好评功能很常见,本文利用jQuery实现五星好评功能. 案例图片: ...