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. vue根据索引删除数组中的一个对象_Vue实现动态添加或者删除对象和对象数组的操作方法...
  2. Spring学习笔记15--注解Bean
  3. 信息系统项目管理师:第9章:项目人力资源管理-章节重点
  4. condition.await
  5. 跟别人借钱,你遇到过什么奇葩的借口?
  6. Linux设备驱动程序(第三版)/深入理解计算机系统(原书第2版)/[Android系统原理及开发要点详解].(韩超,梁泉)百度云盘下载
  7. pytorch: where、gather函数
  8. 游标sql server_SQL Server游标教程
  9. oracle网络加载错误怎么解决,Oracle加载数据库错误解决的方法详细教程
  10. Purftpd的详细安装配置
  11. 尚硅谷视频分享_硅谷的女儿分享了她的“书呆子”故事
  12. 软件测试中的接口分析,软件测试接口测试之管理类—叩丁狼分享
  13. 新书已经到手《Java程序员,上班那点事儿》正式销售纪念帖
  14. minigui相关硬件加速添加方法
  15. 信通方恒资产评估行业快讯:铁矿石供需关系未发生明显变化
  16. Log4j2跨线程打印traceId
  17. Datawhale 计算机视觉基础-图像处理(上)-Task01 OpenCV框架与图像插值算法
  18. OSG 加载 fbx模型 渲染 已解决
  19. qBittorrent
  20. 利用Python爬虫抓取猫眼电影排行(BeautifulSoup方式初试手,欢迎改进)

热门文章

  1. shred如果说它Linux系统是文件粉碎机它就更有名了
  2. 【转载文章】原 DOS命令学习(从入门到精通)_____附加自己学习笔记
  3. Vista 如何关闭UAC(用户帐户控制)
  4. ×××全功能邮件系统(3)
  5. 金蝶服务器选项没有账套信息,金蝶财务软件帐套属性设置保存和帐套启用报错的解决方法...
  6. redis数据更新操作
  7. jmail邮件服务器,ASP Dimac W3 JMail 邮件收发组件函数(JMail使用详解)
  8. html5 flash播发器,什么时候HTML5视频应该回归到Flash播放器?
  9. HackTheBox-Magic-Walkthrough
  10. 热传导方程差分格式 matlab,热传导方程向后差分格式的MATLAB程序