专栏首页测试游记Response Headers的转换

Response Headers的转换

Response Headers的转换

不知不觉一个月没有碰python了,今天看了点以前的东西发现都有点懵逼了。还行需要找点东西增强下记忆。

今天写一个非常简单的实用型脚本。Response Headers转换。

由于python脚本中的headers使用必须使用字典(dict)形式,所以这个小脚本实现了

  • chrome上的头部信息转字典
  • charles上的头部信息转字典

使用python转换

从图中可以看出内容大致为

chrome: xxx:xxx

charles: xxx xxx

chrome中用 :分开键值对

charles中用 \t分开键值对

需要转换成为

{    
    'xxx':'xxx',    
    'xxx':'xxx'
}

行数少的时候自己手动转也还可以,但是行数一多就比较糟心了

先挑选一句进行转换xxx:xxx 转换为"xxx":"xxx",

s = 'xxx:xxx' #字符串
#chrome
s_list = s.strip().split(':') 
#charles
s_list = s.strip().split('\t')
s_ok = "'"+"':'".join(s_list)+"',"

所以写成一个可以用的脚本就是:

def change_headers(text):
   text = text.strip()#去除首尾空格
   text_list = text.splitlines()#按行切成list   for i in range(len(text_list)):#去除每行可能出现的空格
       text_list[i] = text_list[i].strip()
    
    if 'HTTP/1.1' in text_list[0]:#charls中的url信息_没啥用
       text_list.pop(0)
        
    if text_list[0].startswith('Host'):#因人而异的_基本没啥用
       text_list.pop(0)
        
    if text_list[-1].startswith('Cookie'):#一次性用品_没啥用
       text_list.pop(-1)
        
    if ':' in text_list[0]:
       headers = "{\n " +
       ",\n ".join(map(lambda s:"'"+"':'".join(s.strip().split(':'))+"'",text_list))
       + "'\n}"
       return headers    
    else:
       headers = "{\n " +
       ",\n ".join(map(lambda s: "'" + "':'".join(s.strip().split('\t')) + "'", text_list))
       + "'\n}"
       return headers

本文分享自微信公众号 - 测试游记(zx94_11)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-05-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python 日期 字符串 互转

    def datetime_toString(dt): return dt.strftime("%Y-%m-%d-%H")

    用户5760343
  • python apscheduler interval/cron触发器详解 常用

    interval 触发器 参数 说明 weeks (int) 间隔几周 days (int) 间隔几天 hours (int) 间隔几小时 min...

    用户5760343
  • python pyqt5使用资源文件

    将图片资源编译为py文件 例如存在图片 a.png 和 b.png 都位于 ./img/ 路径下面,在 ./ 下新建一个文件 img_rcc.qrc 文件,输...

    用户5760343
  • 聊一聊 SQLMAP 在进行 sql 注入时的整个流程

    本文就用我们看的见的角度来分析,看看 sqlmap 到底发送了什么 payload,这些 payload 是怎么出来的,不深入代码层面。

    信安之路
  • python apscheduler 每两小时执行一次

    from datetime import datetime from apscheduler.schedulers.blocking import Block...

    用户5760343
  • python qtdesigner 拖拽工具

    在PyQt中编写UI界面可以直接通过代码来实现,也可以通过Qt Designer来完成。Qt Designer的设计符合MVC的架构,其实现了视图和逻辑的分离,...

    用户5760343
  • python pyqt5 ui生成py 常用

    D:\soft\Miniconda3\Scripts\pyuic5.exe -o testde.py D:\file\python\siflask\test.u...

    用户5760343
  • 量化投资精品书籍

    这本书真心好,作者就是极度追求技术把机器学习方法和量化投资结合起来。光是看里面如何打标签 (labelling), 采样 (sampling) 和分析回测危险 ...

    用户5753894
  • Selenium WebDriver找不到元素的三种情况

    原因:页面被刷新了。 在当前页面找不到这个元素了,但是你自己手动复制到页面开发者工具上查看明明有啊,为啥在代码里面就找不到了呢?这时,你还可能会问“可是明明元...

    软测小生
  • Java This和Super的用法

    做自动化测试,写代码肯定是必须的,不管是Java还是Python,必须得会,当然,Python肯定未来作自动化测试脚本的是主流,越来越多的地方都能使用到Pyth...

    软测小生

扫码关注云+社区

领取腾讯云代金券