ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

将Swagger中所有接口地址用Python写入Excel中

2021-10-25 10:04:01  阅读:241  来源: 互联网

标签:tags Python Excel list 接口 summary api path Swagger


  我们公司所有接口文档放在swagger中,我一直在想办法把所有接口地址给弄下来放到Excel中,方便jmeter循环跑接口时配置CSV文件使用,经过几天的研究,终于解决了该问题,再也不用一个一个去复制下来了。

  1.首先将swagger保存为文档

  

 

   点击左上角IP地址,会出现json文档,右键另存为,可以保存为.json格式的文档,保存修改文档后缀为txt;

  

 

   2.解析json,分析你要取接口地址的内容所在位置,找到提取数据的方式

  随便找个json解析工具,通过解析我发现所有接口信息都放在paths这个key里面,每个接口地址为一个子key,如下图:

  

 

   3.使用Python脚本提取数据并写入Excel中

  我负责的模块接口共有910个,比较多,为了将来使用方便,除接口地址外,顺便提取了请求方式,接口分类,接口描述,方便以后在Excel表格中分类整理取想要的接口;Python脚本如下:

   

 import json
import xlwt

api_excel = xlwt.Workbook(encoding='utf-8')  # 创建一个文档
api_sheet = api_excel.add_sheet('CRM接口')    # 添加一个sheet
json_file = open('D:/Test/api-docs.txt', encoding='utf-8')  # 打开保存的swagger文本文档
api_data = json.load(json_file)     # 将文档json内容转换为Python对象
api = api_data['paths']  # 取swagger文件内容中的path,文件中path是键名
path_list = []  # 创建接口地址空列表
method_list = []  # 创建请求方式空列表
tags_list = []  # 创建接口分类空列表
summary_list = []  # 创建接口描述空列表
for path in api.keys():  # 循环取key
    values = api[path]  # 根据key获取值
    method = tuple(values.keys())[0]  # 获取请求方式,文件中请求方式是key
    path_list.append(path)  # 将path写入接口地址列表中
    method_list.append(method)  # 将method写入请求方式列表中
    if method == 'get':  # key为get时从get里面取分类和描述,key为post时从post里面取分类和描述
        tags = values['get']['tags'][0]  # 获取接口分类
        summary = values['get']['summary']  # 获取接口描述
        tags_list.append(tags)  # 将接口分类写入列表中
        summary_list.append(summary)  # 将接口描述写入列表中
    if method == 'post':
        tags = values['post']['tags'][0]
        summary = values['post']['summary']
        tags_list.append(tags)
        summary_list.append(summary)
for i in range(len(path_list)):  # 将接口path循环写入第一列
    api_sheet.write(i, 0, path_list[i])
for j in range(len(method_list)):  # 将请求方式循环写入第二列
    api_sheet.write(j, 1, method_list[j])
for m in range(len(tags_list)):  # 将接口分类循环写入第三列
    api_sheet.write(m, 2, tags_list[m])
for n in range(len(summary_list)):  # 将接口描述循环写入第四列
    api_sheet.write(n, 3, summary_list[n])
api_excel.save('D:\\Test\\CRM接口列表.xls')     # 保存文件

  运行结果:

  

 

标签:tags,Python,Excel,list,接口,summary,api,path,Swagger
来源: https://www.cnblogs.com/zengyu0714/p/15457095.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有