POST参数转为DICT

  • 一、需求说明
  • 二、我的解决方案
  • 写在最后

一、需求说明

当我们使用requests库编写爬虫时,往往需要抓包分析其中的POST请求参数,然后再将其转为DICT类型。当我看到参数是这样时:

dopost=login&userid=admin&pwd=admin

我心中不由笑开了花:这么简单,何必如此大费周章?对应的DICT不就是这样么:

{'dopost':'login','userid':'admin','pwd':'admin'
}

小明同学,专制各种不服!!!这位嚣张的同学,请听题:

orderType=-1&receUserInfo={"receUserName":"xxx","receUserCardCode":"xxxxxxxxxxxxxxxxxx","receUserCardCodeType":"1","receUserContact":"xxxxxxxxxxx"}&orderInfo=[{"supplierId":"3601","stationMapId":"7301908","endId":"10720428","endTypeId":"1","planId":"2020-04-07%2C07%3A50%2CX0518%2C430923019%2C430103","planDate":"2020-04-07","driveTime":"07:50","arMoney":86,"orderModelId":"1","goBackFlag":"1","orderCount":1,"ticketOrderMoneyInfo":{"orderMoney":76,"feeMoney":4,"yhqVo":{"yhqId":"","yhqMoney":""},"actionInfo":{"reduceActionCode":"","reduceMoney":0}},"insureOrderMoneyInfo":{"orderMoney":10,"inspackInfo":{"inspackId":602,"inspackReduceMoney":2}},"ticketInfo":[{"ticketTypeId":"1","userCadeType":"1","userCardCode":"xxxxxxxxxxxxxxxxxx","userCardName":"xxx","birthday":"1996-08-24","saveUserFlag":"Y","chooseInspackFlag":"Y","premiumInfo":[],"childInfo":{},"userMobile":"xxxxxxxxxxx"}],"discountInfo":{"cbFlag":"N","cbMoney":0,"intAmount":0}}]&schInfo=[{"ticketTypeList":[{"name":"全","price":"76","id":"1"}],"seats":"48","seatAmount":"42","drvTime":"07:50","schCanSellFlag":"1"}]&t=D3EDDEAF8D7C43B9A94C722982B71ED0

emmmm…对不起,打扰了,溜了遛了。

二、我的解决方案

要是我一个一个去打出来,也许情怀是允许的,可是发量可不答应,于是我想了个办法:

# =============================================================================
# POST请求参数转dict
# =============================================================================
import jsonpost = '' # 这里是请求包里的POST参数
post_list = post.split('&') # 把参数转为list
data = {}
for p in post_list:try:data[p.split('=')[0]] = json.loads(p.split('=')[1]) # 如果参数里含有字典等except:data[p.split('=')[0]] = p.split('=')[1] # 如果不含
print(data)

其实就是对字符串的处理,并通过json库来进一步处理。(因为某些参数可能本身包含字典、列表等类型)

写在最后

感谢各位大大的阅读~

POST参数转为DICT相关推荐

  1. python list转dict_python中将list转为dict

    最近在项目中经常遇到将list转为dict形式,之前都只会用for循环,取出list中的每个值,update到dict中. 示例1 scrabble_scores = [(1, "E A O ...

  2. python把list转成字典_python中将list转为dict

    最近在项目中经常遇到将list转为dict形式,之前都只会用for循环,取出list中的每个值,update到dict中. 示例1 scrabble_scores = [(1, "E A O ...

  3. 将url参数转为json对象

    /*** 将url参数转为json对象** @param str* @returns {{}}*/ function parseQueryString(str){arr = [],length = 0 ...

  4. python bytearray转为byte_Python3 bytearray() 函数详解 将参数转为可变的字节数组

    Python3 bytearray() 函数详解 将参数转为可变的字节数组 bytearray()函数的主要用途是将参数转换为一个新的字节数组,它是一个可变的整数序列,它的取值范围是0 <= x ...

  5. python bytes 改值_Python3 bytes() 函数详解 将参数转为不可变的字节数组

    Python3 bytes() 函数详解 将参数转为不可变的字节数组 bytes()函数的主要用途是将参数转换为一个新的字节数组,它是一个不可变的整数序列,它的取值范围是0 <= x < ...

  6. axios post传递对象_axios的post传参时,将参数转为form表单格式

    import axios from 'axios'; import alert from './alert.js'; import Qs from 'qs' //引入qs 时axios的自带模块 le ...

  7. python 对象转dict_python model对象转为dict数据

    在接口通讯里经常遇到这种需求,需要将对象的字段名和值均传至接口, user = User.objects.get(id=1) 笨方法1,没错,我这样写过: di = {} di['username'] ...

  8. getParameterMap()的返回值为MapString, String[],从其中取得请求参数转为MapString, String的方法如下:...

    直接遍历报错:[Ljava.lang.String;@44739f3f Map<String, String> tempMap = new HashMap<String, Strin ...

  9. 快手sig签名:搜索接口签名破解

    sig生成原理:把url问号后面的参数转成dict,同时把form_data参数放在同一个dict,然后对dict进行排序,排序后转成字符串并且加salt,最后进行md5加密就可以了. # -*- c ...

  10. 快手sig签名,python版,可用于快手关键字搜索结果采集

    很多大佬分享了快手sig参数逆向破解的过程,我只是在大佬的基础上把sig加密部分代码转成python. sig生成原理:把url问号后面的参数转成dict,同时把form_data参数放在同一个dic ...

最新文章

  1. 保证你现在和未来不失业的10种关键技【转载】
  2. 人工神经网络秒变脉冲神经网络,新技术有望开启边缘AI计算新时代
  3. 分治、动态规划、贪婪 之 算法分析
  4. Ecplise中怎样导入Maven项目
  5. 关于异常“The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine”的处理...
  6. Table中Family和Qualifier的关系与区别(转载)
  7. 但是只要是女生的bibohuaianguandan
  8. python 读excel一列_Python读取Excel一列并计算所有对象出现次数的方法
  9. linux系统编程:read,write与lseek的综合应用
  10. samba在企业网应用
  11. XML学习总结(一)——XML介绍
  12. )C# Enum,Int,String的互相转换 枚举转换
  13. 小区物业管理代码实现_全区58个老旧小区有了新“管家”
  14. HC05蓝牙点亮LED
  15. 挖金矿 Java实现
  16. 200道常见java知识点总结,问题+答案(转)
  17. 马哥教育42期第五周作业
  18. 绘图神器draw.io(写文必备)
  19. 聊聊同步/异步/阻塞/非阻塞(举栗子说明)
  20. 射频收发信机架构和射频信号介绍

热门文章

  1. 计算机点击右键管理闪退,Win7系统桌面鼠标右键菜单出现闪退解决方法
  2. 主板检测卡c5_电脑主板检测卡代码大全
  3. 不用镜像,也不下载安装包,windows下安装Ruby
  4. OS X Mavericks 10.9.3 (13D65) 官方原版 懒人版安装镜像
  5. 腾讯的天天快报凭什么想挑战今日头条?
  6. 视频教程-网络工程师的5天修炼-软考
  7. linux flash 存储寿命,关于 Flash 存储,你应该知道的一些事情
  8. 创建 telegram 账号群组 搜索引擎
  9. 安卓flash播放器支持Android 12方案
  10. 转载一些Unity插件及资源