电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python3中對json格式數據的分析處理

瀏覽:6日期:2022-06-28 18:44:08
前言

數據已經過修改,以防泄密,請放心閱讀今天同事提出一個需求,要求我修改之前的某腳本,該腳本的作用是獲取zabbix監控系統返回的json數據,我的任務是使其變成易讀的文本,如何獲取數據不在此贅述,只描述如何對json數據進行處理

一、如何將json數據轉換成python內部的數據類型

展示一下zabbix的接口返回的json數據(數據經過dumps編碼了,因為原數據為str類型,只有一行,不易讀)

js = json.dumps(get_alert(), indent=4, ensure_ascii=False)print(js)# get_alert()方法為獲取json數據,編碼后賦給js,打印js,結果如下:# indent = 4意為設置縮進為4個空格,# ensure_ascii=False參數是禁用ascii編碼,若不禁用,中文字符會輸出為ASCII碼

{ 'jsonrpc': '2.0', 'result': [ { 'triggerid': '123456', 'expression': '{23567}>95', 'description': 'High memory utilization > 95', 'url': '', 'status': '0', 'value': '1', 'priority': '4', 'lastchange': '123456', 'comments': '', 'error': '', 'templateid': '0', 'type': '0', 'state': '0', 'flags': '0', 'recovery_mode': '0', 'recovery_expression': '', 'correlation_mode': '0', 'correlation_tag': '', 'manual_close': '0', 'opdata': '', 'hosts': [ { 'hostid': '8888', 'name': 'window_sever' } ], 'items': [ { 'itemid': '123456', 'name': 'Memory utilization', 'description': 'Memory used percentage is calculated as (100-pavailable)' } ] }, { 'triggerid': '17099', 'expression': '{20221}<{$SWAP.PFREE.MIN.WARN} and {20222}>0', 'description': 'High swap space usage ( less than 20% free)', 'url': '', 'status': '0', 'value': '1', 'priority': '2', 'lastchange': '123456789', 'comments': 'This trigger is ignored, if there is no swap configured', 'error': '', 'templateid': '16176', 'type': '0', 'state': '0', 'flags': '0', 'recovery_mode': '0', 'recovery_expression': '', 'correlation_mode': '0', 'correlation_tag': '', 'manual_close': '0', 'opdata': 'Free: {ITEM.LASTVALUE1}, total: {ITEM.LASTVALUE2}', 'hosts': [ { 'hostid': '10325', 'name': 'linus' } ], 'items': [ { 'itemid': '31681', 'name': 'Free swap space in %', 'description': '' }, { 'itemid': '123456', 'name': 'Total swap space', 'description': '' } ] } ], 'id': '3'}

接下來我們需要對json對象進行解碼

js_loads_data = json.loads(js)# 解碼后的數據轉為python原生的字典類型(dict)

我們需要之后json對象里面的數據類型解碼為dict之后與之對應的數據類型、

json python object dict array list string str number (int) int number (real) float true True false False null None

記不住沒有關系,有方法可以現查:

print(type(js_loads_data))>>><class ’dict’>

通過type()方法可以查看解碼后數據js_loads_data的數據類型,發現他說字典類型,由此知道如何訪問它內部的數據

print(js_loads_data['id'])>>>3print(type(js_loads_data['id']))>>><class ’str’>

訪問字典的值直接通過改變量的下標訪問即可

同理

print(type(js_loads_data['result']))

可以取出result數組,但是這樣是打印整個數組,那么如何取result數組的里面的值呢?

二、訪問json對象里嵌套的數組

我們知道,json對象轉為字典后,數組對應的類型為列表(list)

所以我們可以通

print(type(js_loads_data['result']))>>><class ’list’>

過列表的下標來訪問列表的內容

print(js_loads_data[’result’][0])# 可以將列表下標為0的一個數據取出來print(type(js_loads_data[’result’][0]))>>><class ’dict’># 打印類型發現,列表里面的第一個元素為字典類型,那么我們又知道了如何訪問該字典里面的數據:for key in js_loads_data[’result’][0]: print(key, ':', js_loads_data[’result’][0][key])>>>略>>>hosts : [{’hostid’: ’10358’, ’name’: ’FTPC01(192.168.19.5)’}]>>>items : [{’itemid’: ’33152’, ’name’: ’Memory utilization’, ’description’: ’Memory used percentage is calculated as (100-pavailable)’}]>>>略# 依次打印鍵和值,觀察后發現hosts和items兩個元素還是列表類型,如要取值還要進行處理

btw,分享一個取出列表所有元素的簡便方法:

result_list= [(item.get(’hosts’, ’NA’)) for item in js_loads_data[’result’]]

這樣處理之后js_loads_data[‘result’]三個字典里面的result列表已經被我取出來賦值給result_list這個列表了,現在result_list是列表嵌套列表再嵌套字典的類型(不太好理解,注意觀察上面的json數據),這樣使接下來的操作更為簡單

for tmp in result_list: print(tmp[0].get(’name’))>>>windows sever>>>linus

處理完成

三、總結

拿到一個json不要慌,

先編碼解碼,轉成python原生的數據類型一步步分析,用print(type(元素))的方法捋清楚每個元素的類型,明白整個json串的結構搞明白每個類型的訪問方法這樣我們就可以對整個json數據為所欲為了!

到此這篇關于Python3中對json格式數據的分析處理的文章就介紹到這了,更多相關Python json格式數據分析內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: CTAB,表面活性剂1631溴型(十六烷基三甲基溴化铵)-上海升纬化工原料有限公司 | sus630/303cu不锈钢棒,440C/430F/17-4ph不锈钢研磨棒-江苏德镍金属科技有限公司 | 干粉砂浆设备_干混砂浆生产线_腻子粉加工设备_石膏抹灰砂浆生产成套设备厂家_干粉混合设备_砂子烘干机--郑州铭将机械设备有限公司 | 开平机_纵剪机厂家_开平机生产厂家|诚信互赢-泰安瑞烨精工机械制造有限公司 | 广东燎了网络科技有限公司官网-网站建设-珠海网络推广-高端营销型外贸网站建设-珠海专业h5建站公司「了了网」 | 流程管理|流程管理软件|企业流程管理|微宏科技-AlphaFlow_流程管理系统软件服务商 | 三价铬_环保铬_环保电镀_东莞共盈新材料贸易有限公司 | 直线模组_滚珠丝杆滑台_模组滑台厂家_万里疆科技 | 真空冷冻干燥机_国产冻干机_冷冻干燥机_北京四环冻干 | 胶原检测试剂盒,弹性蛋白检测试剂盒,类克ELISA试剂盒,阿达木单抗ELISA试剂盒-北京群晓科苑生物技术有限公司 | 提升海外网站流量,增加国外网站访客UV,定制海外IP-访客王 | 东莞工厂厂房装修_无尘车间施工_钢结构工程安装-广东集景建筑装饰设计工程有限公司 | 高空重型升降平台_高空液压举升平台_高空作业平台_移动式升降机-河南华鹰机械设备有限公司 | 台湾阳明固态继电器-奥托尼克斯光电传感器-接近开关-温控器-光纤传感器-编码器一级代理商江苏用之宜电气 | Trimos测长机_测高仪_TESA_mahr,WYLER水平仪,PWB对刀仪-德瑞华测量技术(苏州)有限公司 | 「钾冰晶石」氟铝酸钾_冰晶石_氟铝酸钠「价格用途」-亚铝氟化物厂家 | 油液红外光谱仪-油液监测系统-燃油嗅探仪-上海冉超光电科技有限公司 | 成都亚克力制品,PVC板,双色板雕刻加工,亚克力门牌,亚克力标牌,水晶字雕刻制作-零贰捌广告 | 袋式过滤器,自清洗过滤器,保安过滤器,篮式过滤器,气体过滤器,全自动过滤器,反冲洗过滤器,管道过滤器,无锡驰业环保科技有限公司 | 铝合金脚手架厂家-专注高空作业平台-深圳腾达安全科技 | 苏州同创电子有限公司 - 四探针测试仪源头厂家| 东莞ERP软件_广州云ERP_中山ERP_台湾工厂erp系统-广东顺景软件科技有限公司 | 自动钻孔机-全自动数控钻孔机生产厂家-多米(广东)智能装备有限公司 | 一点车讯-汽车网站,每天一点最新车讯!| 精密冲床,高速冲床等冲压设备生产商-常州晋志德压力机厂 | 国际船舶网 - 船厂、船舶、造船、船舶设备、航运及海洋工程等相关行业综合信息平台 | 吉林污水处理公司,长春工业污水处理设备,净水设备-长春易洁环保科技有限公司 | 转子泵_凸轮泵_凸轮转子泵厂家-青岛罗德通用机械设备有限公司 | 焦作网 WWW.JZRB.COM | 多功能真空滤油机_润滑油全自动滤油机_高效真空滤油机价格-重庆润华通驰 | 登车桥动力单元-非标液压泵站-非标液压系统-深圳市三好科技有限公司 | 北京印刷厂_北京印刷_北京印刷公司_北京印刷厂家_北京东爵盛世印刷有限公司 | 进口便携式天平,外校_十万分之一分析天平,奥豪斯工业台秤,V2000防水秤-重庆珂偌德科技有限公司(www.crdkj.com) | 板框压滤机-隔膜压滤机-厢式压滤机生产厂家-禹州市君工机械设备有限公司 | 寮步纸箱厂_东莞纸箱厂 _东莞纸箱加工厂-东莞市寮步恒辉纸制品厂 | 国产离子色谱仪,红外分光测油仪,自动烟尘烟气测试仪-青岛埃仑通用科技有限公司 | 讲师宝经纪-专业培训机构师资供应商_培训机构找讲师、培训师、讲师经纪就上讲师宝经纪 | 环氧铁红防锈漆_环氧漆_无溶剂环氧涂料_环氧防腐漆-华川涂料 | 专业的新乡振动筛厂家-振动筛品质保障-环保振动筛价格—新乡市德科筛分机械有限公司 | 数显恒温油浴-电砂浴-高温油浴振荡器-常州迈科诺仪器有限公司 | 信阳网站建设专家-信阳时代网联-【信阳网站建设百度推广优质服务提供商】信阳网站建设|信阳网络公司|信阳网络营销推广 |