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. Word中摘要和正文同时分栏后,正文跑到下一页,怎么办?或Word分栏后第一页明明有空位后面的文字却自动跳到第二页了,怎么办?

    问题1:Word中摘要和正文同时分栏后,正文跑到下一页,怎么办?或Word分栏后第一页明明有空位后面的文字却自动跳到第二页了,怎么办? 答:在word2010中,菜单栏中最左侧选“文件”->“选 ...

  2. MySQL(四)执行计划

    转载自:Oo若离oO,原文链接 在MySQL中使用explain查询SQL的执行计划 目录 一.什么是执行计划 二.如何分析执行计划 一.什么是执行计划 要对执行计划有个比较好的理解,需要先对MySQ ...

  3. P1441 砝码称重

    题目描述 现有n个砝码,重量分别为a1,a2,a3,……,an,在去掉m个砝码后,问最多能称量出多少不同的重量(不包括0). 输入输出格式 输入格式: 输入文件weight.in的第1行为有两个整数n ...

  4. 查询job的几个语句

    select * from dba_jobs ;select * from dba_scheduler_job_run_details t;    ------>这个语句通过制定job名,来查看 ...

  5. C语言之随机数函数( rand() )的使用方法

    文章出自个人博客https://knightyun.github.io/2018/04/25/c-rand-number,转载请申明. 在程序设计中,难免会使用到随机值函数,其原理与语法大多类似,接下 ...

  6. springboot整合Mybatis(一)——入门

    一.概述 1.先导 mybatis入门随笔:http://www.cnblogs.com/jiangbei/p/6884641.html 2.引入依赖 <dependency> <g ...

  7. mysql是否区分大小写

    1.是否区分 库名.表名.列名.别名 的大小写? ------------------------------------------------------------------ [ Linux] ...

  8. HBase数据访问的一些常用方式

    类型 特点 场合 优缺点分析 Native Java API 最常规和高效的访问方式 适合MapReduce作业并行批处理HBase表数据 Hbase Shell HBase的命令行工具,最简单的访问 ...

  9. Python day2 ---python基础2

    本节内容 列表. 元组操作 购物车程序 字符串操作 字典操作 3级菜单 作业(购物车优化) 1. 列表操作 1.定义列表names = ['Alex',"Tenglan",'Eri ...

  10. FFM算法解析及Python实现

    1. 什么是FFM? 通过引入field的概念,FFM把相同性质的特征归于同一个field,相当于把FM中已经细分的feature再次进行拆分从而进行特征组合的二分类模型. 2. 为什么需要FFM? ...