• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于python:headers字符串转字典-并储存在headersjson-复制到剪贴板Python程序效果演示

python 搞代码 3年前 (2022-02-20) 13次浏览 已收录 0个评论

代码成果演示
Gitee源码

# -*- coding: utf-8 -*-
# Version: Python 3.9.7
# Author: TRIX
# Date: 2021-10-05 13:51:29
# Use:将复制的申请标头字符串 转换成 headers字典 并贮存在headers.json 复制到剪贴板

#应用办法:f12-网络-f5-名称-任意一个条目-标头-申请标头-复制所有-运行该文件

import pyperclip,json
def getHeaders(noKeys=None,extraStripChars=[':'],doPrint=False,):
    '''noKeys 依据键名去除键值对 键名与键名间以一个space宰割 辨别大小写 疏忽是否strip

    extraStripChars 额定strip键名的无关字符 字符与字符间以一个space宰割

    doPrint 是否打印headers和去除的键值对 只有在首次创立headers.json有用'''
    strs=pyperclip.paste()#读取剪贴字符串
    headers={}

    if 'Mozilla' not in strs:#如果复制字符串不是申请标头
        try:
            with open('headers.json','r',encoding='utf-8') as f:#读取贮存的headers
                headers=json.loads(f.read())#json文本转dict对象
        except FileNotFoundError:
            return print('请至多残缺复制一次申请标头信息\n复制办法:f12-网络-f5-名称-任意一个条目-标头-申请标头-复制所有')

    if not headers:
        def stripChars(word):#strip键名的无关字符
            word=word.strip()
            for char in extraStripChars:
                word=word.strip(char)
            return word

        keysValues=[]
        for keyOrValue in strs.split(': '):#以: 和\n切分字符串
            for kOrV in keyOrValue.split('\r\n'):
                keysValues.append(stripChars(kOrV))

        for i in range(0,len(keysValues),2):#生成headers字典
            headers[keysValues[i]]=keysValues[i+1]

        if noKeys:#去除指定键值对
            popKvs=[]
            for key in noKeys.split():
                popKvs.append(f"'{key}':'{headers.pop(stripChars(key))}'")

        headersJson=json.dumps(headers,ensure_ascii=False,indent=2)#dict对象转json文本 ensure_ascii让输入后果是中文而不是unicode indent缩进字符个数 值只能是 dict list int float str bool None
        with open('headers.json','w',encoding='utf-8') as h:#贮存json数据
            h.write(headersJson)
        print('headers信息已贮存至headers.json 并复制到剪贴板')

        if doPrint:#打印
            print('headers={')
            for k,v in headers.items():
                print(f"'{k}':'{v}',")
            print('}')
            if popKvs:
                print('\n去除headers的键值对如下:')
                for kv in popKvs:
                    print(kv)
                print('\n')

    pyperclip.copy(headersJson)#复制headers到剪贴板
    return headers

#getHeaders(noKeys='path',doPrint=True)
getHeaders()


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于python:headers字符串转字典-并储存在headersjson-复制到剪贴板Python程序效果演示
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址