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

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

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

瀏覽:11日期: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 編程
相關文章:
主站蜘蛛池模板: 捷码低代码平台 - 3D数字孪生_大数据可视化开发平台「免费体验」 | 酶联免疫分析仪-多管旋涡混合仪|混合器-莱普特科学仪器(北京)有限公司 | 手板-手板模型-手板厂-手板加工-生产厂家,[东莞创域模型] | 铝箔袋,铝箔袋厂家,东莞铝箔袋,防静电铝箔袋,防静电屏蔽袋,防静电真空袋,真空袋-东莞铭晋让您的产品与众不同 | 知网论文检测系统入口_论文查重免费查重_中国知网论文查询_学术不端检测系统 | 反渗透水处理设备|工业零排放|水厂设备|软化水设备|海南净水设备--海南水处理设备厂家 | 伸缩节_伸缩器_传力接头_伸缩接头_巩义市联通管道厂 | 氧化锆陶瓷_氧化锆陶瓷加工_氧化锆陶瓷生产厂家-康柏工业陶瓷有限公司 | 定硫仪,量热仪,工业分析仪,马弗炉,煤炭化验设备厂家,煤质化验仪器,焦炭化验设备鹤壁大德煤质工业分析仪,氟氯测定仪 | 浙江美尔凯特智能厨卫股份有限公司| 新疆乌鲁木齐网站建设-乌鲁木齐网站制作设计-新疆远璨网络 | 利浦顿蒸汽发生器厂家-电蒸汽发生器/燃气蒸汽发生器_湖北利浦顿热能科技有限公司官网 | 浙江红酒库-冰雕库-气调库-茶叶库安装-医药疫苗冷库-食品物流恒温恒湿车间-杭州领顺实业有限公司 | 钢格板|镀锌钢格板|热镀锌钢格板|格栅板|钢格板|钢格栅板|热浸锌钢格板|平台钢格板|镀锌钢格栅板|热镀锌钢格栅板|平台钢格栅板|不锈钢钢格栅板 - 专业钢格板厂家 | 氧化铁红厂家-淄博宗昂化工 | 卓能JOINTLEAN端子连接器厂家-专业提供PCB接线端子|轨道式端子|重载连接器|欧式连接器等电气连接产品和服务 | 品牌策划-品牌设计-济南之式传媒广告有限公司官网-提供品牌整合丨影视创意丨公关活动丨数字营销丨自媒体运营丨数字营销 | 涡街流量计_LUGB智能管道式高温防爆蒸汽温压补偿计量表-江苏凯铭仪表有限公司 | 微波消解仪器_智能微波消解仪报价_高压微波消解仪厂家_那艾 | 雷蒙磨,雷蒙磨粉机,雷蒙磨机 - 巩义市大峪沟高峰机械厂 | 英思科GTD-3000EX(美国英思科气体检测仪MX4MX6)百科-北京嘉华众信科技有限公司 | 精密五金冲压件_深圳五金冲压厂_钣金加工厂_五金模具加工-诚瑞丰科技股份有限公司 | 精密钢管,冷拔精密无缝钢管,精密钢管厂,精密钢管制造厂家,精密钢管生产厂家,山东精密钢管厂家 | B2B网站_B2B免费发布信息网站_B2B企业贸易平台 - 企资网 | 游动电流仪-流通式浊度分析仪-杰普仪器(上海)有限公司 | 定量包装机,颗粒定量包装机,粉剂定量包装机,背封颗粒包装机,定量灌装机-上海铸衡电子科技有限公司 | 焦作网 WWW.JZRB.COM | 钢托盘,铁托盘,钢制托盘,镀锌托盘,饲料托盘,钢托盘制造商-南京飞天金属13260753852 | 江门流水线|江门工作台|江门市伟涛行工业设备有限公司 | sfp光模块,高速万兆光模块工厂-性价比更高的光纤模块制造商-武汉恒泰通 | 挤塑板-XPS挤塑板-挤塑板设备厂家[襄阳欧格] | LCD3D打印机|教育|桌面|光固化|FDM3D打印机|3D打印设备-广州造维科技有限公司 | 室内室外厚型|超薄型|非膨胀型钢结构防火涂料_隧道专用防火涂料厂家|电话|价格|批发|施工 | 众品地板网-地板品牌招商_地板装修设计_地板门户的首选网络媒体。 | 山东艾德实业有限公司| 环比机械 | 杭州月嫂技术培训服务公司-催乳师培训中心报名费用-产后康复师培训机构-杭州优贝姆健康管理有限公司 | 磁棒电感生产厂家-电感器厂家-电感定制-贴片功率电感供应商-棒形电感生产厂家-苏州谷景电子有限公司 | 三氯异氰尿酸-二氯-三氯-二氯异氰尿酸钠-优氯净-强氯精-消毒片-济南中北_优氯净厂家 | 智成电子深圳tdk一级代理-提供TDK电容电感贴片蜂鸣器磁芯lambda电源代理经销,TDK代理商有哪些TDK一级代理商排名查询。-深圳tdk一级代理 | 北京成考网-北京成人高考网 |