python脚本获取H3C SecPath数据输出Excel示例
1、安装pandas、openpyxl、requests模块
python -m pip install --upgrade pip
pip install whl
pip install pandas
pip install openpyxl
pip install requests
2、编写脚本
(列表给pandas处理)
from requests.auth import HTTPBasicAuth import requests import pandas as pd url_auth = 'https://192.168.1.10/api/v1/tokens' user = 'admin' passwd = 'admin' requests.packages.urllib3.disable_warnings() http_token = requests.post(url_auth, auth=HTTPBasicAuth(user, passwd), verify=False) token_id = http_token.json().get('token-id') url_acl = 'https://192.168.1.10/api/v1/SecurityPolicies/GetRules' headers = {"X-Auth-Token": token_id, "Content-type": "application/json", "Accept": "application/json"} res_acl = requests.get(url_acl, headers=headers, verify=False) #取到的所有ACL数据 dataall=[] for i in res_acl.json().get('GetRules'): datalist = [] datalist.append(i.get('Name')) datalist.append(i.get('SrcZoneList').get('SrcZoneItem')) datalist.append(i.get('DestZoneList').get('DestZoneItem')) datalist.append(i.get('SrcSimpleAddrList').get('SrcSimpleAddrItem') if 'SrcSimpleAddrList' in i.keys() else 'any') datalist.append((i.get('DestSimpleAddrList').get('DestSimpleAddrItem') if 'DestSimpleAddrList' in i.keys() else []) + (i.get('DestAddrList').get('DestAddrItem') if 'DestAddrList' in i.keys() else [])) datalist.append((i.get('UserList').get('UserItem') if 'UserList' in i.keys() else []) + (i.get('UserGrpList').get('UserGrpItem') if 'UserGrpList' in i.keys() else [])) datalist.append('启用' if i.get('Enable') else '禁用') dataall.append(datalist) print(dataall) resdata = pd.DataFrame(dataall, columns=['策略名', '源区域', '目标区域', '源地址', '目的地址/目的地址组', '授权用户/授权用户组', '状态']) resdata.index = [i for i in range(1, len(resdata.index) + 1)] #修改行号从1开始 resdata.to_excel('rule.xlsx')
(字典给pandas处理)
from requests.auth import HTTPBasicAuth import json import requests import pandas as pd url_auth = 'https://192.168.1.10/api/v1/tokens' user = 'admin' passwd = 'admin' requests.packages.urllib3.disable_warnings() http_token = requests.post(url_auth, auth=HTTPBasicAuth(user, passwd), verify=False) token_id = http_token.json().get('token-id') url = 'https://192.168.1.10/api/v1/OMS/IPv4Objs' headers = {"X-Auth-Token": token_id, "Content-type": "application/json", "Accept": "application/json"} res = requests.get(url, headers=headers, verify=False) # print(json.dumps(res.json())) datalist = {} for i in res.json().get('IPv4Objs'): datadic = {} if i.get('Group') not in datalist.keys(): datalist[i.get('Group')] = '' if i.get('HostIPv4Address'): datalist[i.get('Group')] += i.get('HostIPv4Address') + ',' print(datalist) resdata = pd.DataFrame(pd.Series(datalist), columns=['IP']) #字典给pd处理的时候是key为列名,value为行,index为默认从0开始,通过series将行和列互换显示,index列也成为了key resdata = resdata.reset_index().rename(columns={'index': '组名'}) #通过reset_index将在表格最前面新增一列作为index,再将第二列的index列名改为组名 resdata.index = [i for i in range(1, len(resdata.index) + 1)] #将index的序号从1开始 resdata.to_excel('obj.xlsx')
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统