Python爬虫:url中带字典列表参数的编码转换方法


Posted in Python onAugust 21, 2019

平时见到的url参数都是key-value, 一般vlaue都是字符串类型的

如果有幸和我一样遇到字典,列表等参数,那么就幸运了

python2代码

import json
from urllib import urlencode

# 1. 直接将url编码
params = {
  "name": "Tom",
  "hobby": ["ball", "swimming"],
  "books": [{"name": "语文", "pages": 20}]
}

print(urlencode(params))
"""
hobby=%5B%27ball%27%2C+%27swimming%27%5D&
books=%5B%7B%27name%27%3A+%27%5Cxe8%5Cxaf%5Cxad%5Cxe6%5Cx96%5Cx87%27%2C+%27pages%27%3A+20%7D%5D&
name=Tom
"""

# 2. 先用json序列化字典和列表参数
params = {
  "name": "Tom",
  "hobby": json.dumps(["ball", "swimming"]),
  "books": json.dumps([{"name": "语文", "pages": 20}])
}

print(urlencode(params))

"""
hobby=%5B%22ball%22%2C+%22swimming%22%5D&
books=%5B%7B%22name%22%3A+%22%5Cu8bed%5Cu6587%22%2C+%22pages%22%3A+20%7D%5D&
name=Tom
"""

观察1 和2 序列化出来的url参数不是一样的,如果第一种方式的url不能正常访问,那么就用第二种

Python 相关文章推荐
python基础教程之python消息摘要算法使用示例
Feb 10 Python
初步介绍Python中的pydoc模块和distutils模块
Apr 13 Python
Python3.2模拟实现webqq登录
Feb 15 Python
Python中序列的修改、散列与切片详解
Aug 27 Python
PyQt实现界面翻转切换效果
Apr 20 Python
python一行sql太长折成多行并且有多个参数的方法
Jul 19 Python
Django模型中字段属性choice使用说明
Mar 30 Python
Django用户身份验证完成示例代码
Apr 03 Python
python属于软件吗
Jun 18 Python
python 使用csv模块读写csv格式文件的示例
Dec 02 Python
Python初识逻辑与if语句及用法大全
Aug 07 Python
Python数据结构之队列详解
Mar 21 Python
Python GUI学习之登录系统界面篇
Aug 21 #Python
Python爬虫:将headers请求头字符串转为字典的方法
Aug 21 #Python
利用python在大量数据文件下删除某一行的例子
Aug 21 #Python
Python 仅获取响应头, 不获取实体的实例
Aug 21 #Python
详解用Python为直方图绘制拟合曲线的两种方法
Aug 21 #Python
Python 使用指定的网卡发送HTTP请求的实例
Aug 21 #Python
Python turtle绘画象棋棋盘
Aug 21 #Python
You might like
php实现数组筛选奇数和偶数示例
2014/04/11 PHP
php实现根据url自动生成缩略图的方法
2014/09/23 PHP
PHP Echo字符串的连接格式
2016/03/07 PHP
php生成酷炫的四个字符验证码
2016/04/22 PHP
laravel + vue实现的数据统计绘图(今天、7天、30天数据)
2018/07/31 PHP
PHP中命名空间的使用例子
2019/03/22 PHP
Firefox 无法获取cssRules 的解决办法
2006/10/11 Javascript
javascript与CSS复习(二)
2010/06/29 Javascript
javascript 终止函数执行操作
2014/02/14 Javascript
javascript基于HTML5 canvas制作画箭头组件
2014/06/25 Javascript
EasyUI中combobox默认值注意事项
2015/03/01 Javascript
JavaScript获得表单target属性的方法
2015/04/02 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
JavaScript设计模式开发中组合模式的使用教程
2016/05/18 Javascript
jQuery时间验证和转换为标准格式的时间格式
2017/03/06 Javascript
JS实现为动态添加的元素增加事件功能示例【基于事件委托】
2018/03/21 Javascript
JavaScript 中的 this 工作原理
2018/06/20 Javascript
5分钟快速掌握JS中var、let和const的异同
2018/09/19 Javascript
vue项目搭建以及全家桶的使用详细教程(小结)
2018/12/19 Javascript
JS对象属性的检测与获取操作实例分析
2020/03/17 Javascript
Javascript类型判断相关例题及解析
2020/08/26 Javascript
使用优化器来提升Python程序的执行效率的教程
2015/04/02 Python
Python网络编程使用select实现socket全双工异步通信功能示例
2018/04/09 Python
python utc datetime转换为时间戳的方法
2019/01/15 Python
Python闭包和装饰器用法实例详解
2019/05/22 Python
Python对接六大主流数据库(只需三步)
2019/07/31 Python
Python实现实时数据采集新型冠状病毒数据实例
2020/02/04 Python
python实现堆排序的实例讲解
2020/02/21 Python
python 自动识别并连接串口的实现
2021/01/19 Python
html5 input输入实时检测以及延时优化
2018/07/18 HTML / CSS
XML文档面试题
2015/08/05 面试题
软件工程师面试题
2012/06/25 面试题
2015年财务个人工作总结范文
2015/05/22 职场文书
大学生军训心得体会5篇
2019/08/15 职场文书
Nginx下配置Https证书详细过程
2021/04/01 Servers
vue elementUI批量上传文件
2022/04/26 Vue.js