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

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

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

瀏覽:5日期: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 編程
相關文章:
主站蜘蛛池模板: 水轮机密封网 | 水轮机密封产品研发生产厂家 | pbootcms网站模板|织梦模板|网站源码|jquery建站特效-html5模板网 | 集装袋吨袋生产厂家-噸袋廠傢-塑料编织袋-纸塑复合袋-二手吨袋-太空袋-曹县建烨包装 | 心肺复苏模拟人|医学模型|急救护理模型|医学教学模型上海康人医学仪器设备有限公司 | 超声波破碎仪-均质乳化机(供应杭州,上海,北京,广州,深圳,成都等地)-上海沪析实业有限公司 | 皮带输送机-大倾角皮带输送机-皮带输送机厂家-河南坤威机械 | 仪器仪表网 - 永久免费的b2b电子商务平台 | 山东集装箱活动房|济南集装箱活动房-济南利森集装箱有限公司 | 耐磨焊丝,堆焊焊丝,耐磨药芯焊丝,碳化钨焊丝-北京耐默公司 | 全国国际化学校_国际高中招生_一站式升学择校服务-国际学校网 | 东风体检车厂家_公共卫生体检车_医院体检车_移动体检车-锦沅科贸 | 天长市晶耀仪表有限公司| 布袋除尘器-单机除尘器-脉冲除尘器-泊头市兴天环保设备有限公司 布袋除尘器|除尘器设备|除尘布袋|除尘设备_诺和环保设备 | 超声骨密度仪-动脉硬化检测仪器-人体成分分析仪厂家/品牌/价格_南京科力悦 | 视觉检测设备_自动化检测设备_CCD视觉检测机_外观缺陷检测-瑞智光电 | 大_小鼠elisa试剂盒-植物_人Elisa试剂盒-PCR荧光定量试剂盒-上海一研生物科技有限公司 | 包装机_厂家_价格-山东包装机有限公司 | 上海小程序开发-上海小程序制作公司-上海网站建设-公众号开发运营-软件外包公司-咏熠科技 | 上海办公室装修公司_办公室设计_直营办公装修-羚志悦装 | 风信子发稿-专注为企业提供全球新闻稿发布服务 | 东莞韩创-专业绝缘骨架|马达塑胶零件|塑胶电机配件|塑封电机骨架厂家 | 上海恒驭仪器有限公司-实验室平板硫化机-小型平板硫化机-全自动平板硫化机 | 精密五金冲压件_深圳五金冲压厂_钣金加工厂_五金模具加工-诚瑞丰科技股份有限公司 | 能耗监测系统-节能监测系统-能源管理系统-三水智能化 | IWIS链条代理-ALPS耦合透镜-硅烷预处理剂-上海顶楚电子有限公司 lcd条形屏-液晶长条屏-户外广告屏-条形智能显示屏-深圳市条形智能电子有限公司 | Safety light curtain|Belt Sway Switches|Pull Rope Switch|ultrasonic flaw detector-Shandong Zhuoxin Machinery Co., Ltd | 插针变压器-家用电器变压器-工业空调变压器-CD型电抗器-余姚市中驰电器有限公司 | 厂房出租_厂房出售_产业园区招商_工业地产&nbsp;-&nbsp;中工招商网 | 警方提醒:赣州约炮论坛真的安全吗?2025年新手必看的网络交友防坑指南 | 北京自然绿环境科技发展有限公司专业生产【洗车机_加油站洗车机-全自动洗车机】 | 冷却塔厂家_冷却塔维修_冷却塔改造_凉水塔配件填料公司- 广东康明节能空调有限公司 | 小型单室真空包装机,食品单室真空包装机-百科 | 贴板式电磁阀-不锈钢-气动上展式放料阀-上海弗雷西阀门有限公司 工业机械三维动画制作 环保设备原理三维演示动画 自动化装配产线三维动画制作公司-南京燃动数字 | 不锈钢管件(不锈钢弯头,不锈钢三通,不锈钢大小头),不锈钢法兰「厂家」-浙江志通管阀 | 矿用履带式平板车|探水钻机|气动架柱式钻机|架柱式液压回转钻机|履带式钻机-启睿探水钻机厂家 | 路斯特伺服驱动器维修,伦茨伺服驱动器维修|万骏自动化百科 | 磁棒电感生产厂家-电感器厂家-电感定制-贴片功率电感供应商-棒形电感生产厂家-苏州谷景电子有限公司 | PU树脂_水性聚氨酯树脂_聚氨酯固化剂_聚氨酯树脂厂家_宝景化工 | RV减速机-蜗轮蜗杆减速机-洗车机减速机-减速机厂家-艾思捷 | 地埋式垃圾站厂家【佳星环保】小区压缩垃圾中转站转运站 | 专业的新乡振动筛厂家-振动筛品质保障-环保振动筛价格—新乡市德科筛分机械有限公司 |