headers及data数据格式化脚本

Zss 发表于:

在使用python来写接口,爬虫时,经常需要使用到headers和提交的data数据,这些数据首先都是通过抓包来分析,然后构造

在python中这些都是属于字典的格式,所以当这些数据比较多的时候,每次都需要手动的给他们来添加上什么逗号,大括号,引号

所以特地编写以一个小工具来格式化这些数据,格式化之后直接复制到python代码中就可以使用了,方便很多

由于需要使用到复制粘贴,所以想到还是使用gui的界面会比较方便,如果直接是cmd窗口,多少不方便,所使用到的模块是gui的库 –> tkinter

首先需要构造一个整体的窗口

window=tk.Tk()
window.title('字典格式转换')
window.geometry('750x570')
window.resizable(False, False)

然后再中间嵌入各种文本框和按钮,其中按钮的的作用可以使用一个函数来实现,然后绑定在这个按钮上,例如清除的按钮

b2=tk.Button(window,text='清除所有',width=15,height=2,command=clear)
b2.pack()

l = tk.Label(window, text="转换后的文本如下", bg="white", font=("Arial", 10), width=100, height=1)
l.pack()

#coding:utf-8
import tkinter as tk
window=tk.Tk()
window.title('字典格式转换')
window.geometry('750x570')
window.resizable(False, False)
l = tk.Label(window, text="输入需要转换的文本", bg="white", font=("Arial", 10), width=100, height=1)
l.pack()
e=tk.Text(window,width=100,height=15)
# Entry的第一个参数是父窗口,即这里的window
# *表示输入的文本变为星号,在Entry不可见内容,若为None则表示为输入文本以原形式可见
e.pack()
def insert_point():
    var = e.get("0.0", "end")
    headers = var.splitlines()
    for i in range(0,len(headers)):
        if i+1 == len(headers) and len(headers)!=1:
            data = "'" + headers[i].split(':',1)[0] + "'"+ ':' + "'" + headers[i].split(':',1)[1].strip() + "'" + '}'
            t.insert('insert',data)
        elif i == 0 and len(headers)!=1:
            data = '{' + "'" + headers[i].split(':',1)[0] + "'"+ ':' + "'" + headers[i].split(':',1)[1].strip() + "'" + ','+'\n'
            t.insert('insert',data)
        elif len(headers)==1:
            data = '{' + "'" + headers[i].split(':',1)[0] + "'"+ ':' + "'" + headers[i].split(':',1)[1].strip() + "'" + '}'+'\n'
            t.insert('insert',data)
        else:
            data = "'" + headers[i].split(':',1)[0] + "'"+ ':' + "'" + headers[i].split(':',1)[1].strip() + "'" + ',' + '\n'
            t.insert('insert',data)


b1=tk.Button(window,text='格式转换',width=15,height=2,command=insert_point)
b1.pack()

def clear():
    t.delete("0.0", "end")
    e.delete("0.0", "end")

b2=tk.Button(window,text='清除所有',width=15,height=2,command=clear)
b2.pack()

l = tk.Label(window, text="转换后的文本如下", bg="white", font=("Arial", 10), width=100, height=1)
l.pack()

t=tk.Text(window,width=100,height=15)     #这里设置文本框高,可以容纳两行
t.pack()
window.mainloop()