1 #coding=utf8
2
3 """
4 CMDB接口调用
5 """
6 import csv
7 import json
8 import time
9
10 import requests
11 from requests.auth import HTTPDigestAuth
12
13 class getAPIInfo(object):
14
15 def __init__(self,api_url,username,password):
16 self.headers = {'Accept': 'application/json'}
17 self.base_url = 'http://xx.xx.xx.xx:8080'
18 self.api_url = api_url
19 self.username = username
20 self.password = password
21
22 def get_info(self):
23 headers = self.headers
24 base_url = self.base_url
25 api_url = self.api_url
26 username = self.username
27 password = self.password
28
29 authhandler = HTTPDigestAuth(username,password)
30 resp = requests.get(base_url + api_url, auth=authhandler, headers=headers)
31 content = json.loads(resp.text)
32 return content
33
34 class writeToCsv(object):
35 def __init__(self,data,info):
36 self.data = data
37 self.info = info
38
39 def write_to_csv(self):
40 rows = self.data
41 info = self.info
42 csvfile = "设备信息列表" + info + time.strftime('_%Y%m%d%H%M%S', time.localtime(time.time())) + ".csv"
43 # print(csvfile)
44 # 创建文件对象
45 f = open(csvfile, 'w')
46
47 # 通过文件创建csv对象
48 csv_write = csv.writer(f)
49
50 # writerow: 按行写入, writerows: 是批量写入
51 # 写入数据 取列表的第一行字典,用字典的key值做为头行数据
52 csv_write.writerow(rows[0].keys())
53
54 # 循环里面的字典,将value作为数据写入进去
55 for row in rows:
56 csv_write.writerow(row.values())
57
58 # 关闭打开的文件
59 f.close()
60 return "读写完成:"+csvfile
61
62 if __name__ == '__main__':
63 # # 1 - 查询设备信息列表 /plat/res/device
64 api_url = "/imcrs/plat/res/device?size=1000"
65 info = "device"
66
67 # 2-获取AC相关信息http://ip:8080/imcrs/wlan/acInfo/queryAcBasicInfo
68 # api_url = "/imcrs/wlan/acInfo/queryAcBasicInfo"
69 # info = 'acBasicInfo'
70
71 # 3 -查询Ap相关信息GET /imcrs/wlan/apInfo/queryApBasicInfo
72 # api_url = "/imcrs/wlan/apInfo/queryApBasicInfo"
73 # info = 'apBasicInfo'
74
75 # #4-查询设备类型列表/plat/res/category
76 # api_url = "/imcrs/plat/res/category"
77
78 # #5-查询资产列表/netasset/asset
79 # api_url = "/imcrs/netasset/asset"
80
81 # 获取API接口信息
82 username = '******'
83 password = '******'
84 # 1- 获取api接口信息
85 req = getAPIInfo(api_url,username,password)
86 content = req.get_info()
87 # print(content)
88
89 # #获取设备json数据
90 data = content[info]
91
92 # 2-调用写入csv类
93 write = writeToCsv(data,info)
94 resp = write.write_to_csv()
95 print(resp)

自动获取IMC系统所有网络设备资产信息的更多相关文章

  1. JAVA如何利用Swiger获取Linux系统电脑配置相关信息

    最近开发java应用程序,涉及到获取Linux服务器相关配置的问题,特地网上搜寻了下,采用Swiger包可以直接获取,再次小结一下,以便于以后能方便使用,也便于其他童鞋们学习. 推荐大家参考链接:ht ...

  2. oracle 插入记录,字段自动获取当前系统时间(YYYY-MM-DD HH24:MI:SS)

    需求: 插入一条记录,要求自动获取当前日期,并且格式为(YYYY-MM-DD HH24:MI:SS) sql语句: insert into SY_COMM_CONFIG(CONF_ID, S_MTIM ...

  3. Delphi 10.3版本获取windows系统版本和CPU信息

    procedure TForm1.Button1Click(Sender: TObject); var mm:TRegistry; cpu:string; begin mm:=TRegistry.Cr ...

  4. Appium自动获取 Android 设备 id 和包名等信息(python)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/zhusongziye/article/d ...

  5. C/C++获取操作系统、CPU、内存信息(windows和linux)

    有时候需要在工程里面获取一些系统或者硬件的信息,比如系统版本,cpu,内存,显卡,硬盘等,作为后续软件功能判断的依据,甚至参与性能算法自适应建模 Windows 操作系统和内存信息在windows下通 ...

  6. 使用Python获取Linux系统的各种信息

    哪个Python版本? 当我提及Python,所指的就是CPython 2(准确的是2.7).我会显式提醒那些相同的代码在CPython 3 (3.3)上是不工作的,以及提供一份解释不同之处的备选代码 ...

  7. UWP 应用获取各类系统、用户信息 (2) - 商店授权信息、零售演示模式信息、广告 ID、EAS 设备信息、硬件识别信息、移动网络信息

    应用开发中,开发者时常需要获取一些系统.用户信息用于数据统计遥测.问题反馈.用户识别等功能.本文旨在介绍在 Windows UWP 应用中获取一些常用系统.用户信息的方法.示例项目代码可参见 Gith ...

  8. java工作流系统表单自动 获取数据

    关键词:工作流快速开发平台  工作流流设计  业务流程管理   asp.net 开源工作流  bpm工作流系统  java工作流主流框架  自定义工作流引擎 表单设计器  流程设计器 什么是数据自动获 ...

  9. 答:SQLServer DBA 三十问之六:Job信息我们可以通过哪些表获取;系统正在运行的语句可以通过哪些视图获取;如何获取某个T-SQL语句的IO、Time等信息;

    6. Job信息我们可以通过哪些表获取:系统正在运行的语句可以通过哪些视图获取:如何获取某个T-SQL语句的IO.Time等信息: 我的MSDB数据库中有全部的表: sys.all_columns,s ...

随机推荐

  1. React & Special Props Warning

    React & Special Props Warning key & ref demo index.js:1 Warning: Comment: key is not a prop. ...

  2. 图解 Webpack 4.x 热更新原理

    图解 Webpack 4.x 热更新原理 Webpack HMR ️ module.hot & module.hot.accept if (module.hot) { module.hot.a ...

  3. web components & publish custom element & npm

    web components & publish custom element & npm https://www.webcomponents.org/publish Polymer ...

  4. Chrome debug & string to object & copy format json

    Chrome debug & string to object & copy format json // save as global variable copy(JSON.stri ...

  5. 解决异常: Execution default-cli of goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.7:generate failed: Cannot instantiate object of type tk.mybatis.mapper.generator.MapperPlugin -> [Help 1]

    mybatis-generator整合通用mapper使用generator插件生成model.mapper时报错: 产生以下错误:↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 解决办法: ...

  6. Docker私有仓库的搭建与使用

    目录 Docker搭建私有仓库 一.搭建registry私有仓库 1.拉取私有仓库registry镜像 2.启动私有仓库容器 3.修改deamon.json 4.重启docker 5.启动regist ...

  7. Docker-compose编排微服务顺序启动

    一.概述 docker-compose可以方便组合多个 docker 容器服务, 但是, 当容器服务之间存在依赖关系时, docker-compose 并不能保证服务的启动顺序.docker-comp ...

  8. gitlab和gitlab项目迁移

    一.概述 原gitlab 操作系统:centos 6.9 版本:GitLab 社区版 10.5.1 安装方式:yum 新gitlab 操作系统:centos 7.6 版本:GitLab Communi ...

  9. Spring Boot 2.x基础教程:使用MongoDB

    前段时间因为团队调整,大部分时间放在了团队上,这系列的更新又耽误了一下.但既然承诺持久更新,那就不会落下,今天开始继续更新这部分的内容! 过了年,重申一下这个系列的目标:目前主要任务就是把Spring ...

  10. Java并发编程基础三板斧之Semaphore

    引言 最近可以进行个税申报了,还没有申报的同学可以赶紧去试试哦.不过我反正是从上午到下午一直都没有成功的进行申报,一进行申报 就返回"当前访问人数过多,请稍后再试".为什么有些人就 ...