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. How to enable HTTPS for local development in macOS using Chrome

    How to enable HTTPS for local development in macOS using Chrome HTTPS, macOS, Chrome local HTTPS htt ...

  2. The Weekly Web Dev Challenge: String Calculator

    The Weekly Web Dev Challenge: String Calculator https://twitter.com/intent/tweet?text=I just complet ...

  3. Azure 信用卡扣款 1 美元 & Azure 中国客服

    Azure 信用卡扣款 1 美元 & azure 中国客服 Azure 免费帐户常见问题 https://azure.microsoft.com/zh-cn/free/free-account ...

  4. Ethical Hacking Tutorials

    Ethical Hacking Tutorials Free Ethical Hacking Tutorials https://www.guru99.com/ethical-hacking-tuto ...

  5. Typescript All In One

    Typescript All In One TypeScript 3.5 is now available. https://www.typescriptlang.org/#download-link ...

  6. Android 获取apk的URL Schemes

    1. 下载apk到你的PC上 2. 反向工程Android APK文件的工具 Apktool 3. 查看"AndroidManifest.xml"文件 See alse: http ...

  7. ffmpeg concat设置绝对路径

    https://superuser.com/questions/718027/ffmpeg-concat-doesnt-work-with-absolute-path/1551017#1551017 ...

  8. C++算法代码——骨牌铺法

    题目来自:http://218.5.5.242:9018/JudgeOnline/problem.php?id=1638 题目描述 输入 输入一个正整数,表示n. 输出 输出一个正整数,表示铺法. 样 ...

  9. 一层逻辑的网页scrapy爬虫

    1 import scrapy 2 import re 3 from fake_useragent import UserAgent 4 5 6 class DoubanSpider(scrapy.S ...

  10. 20_MySQL表的内连接实操

    -- 查询底薪超过公司平均底薪的员工信息 -- 方法1 SELECT empno,ename FROM t_emp HAVING sal>AVG(sal); 因为在having中不能拿一个字段与 ...