网站建设对比分析,山西建设监理协会官方网站,网站开发外包,wordpress插件设置import json
处理JSON文件通常涉及读取、解析和写入JSON数据的过程。下面是一些在Python中处理JSON文件的常用方法#xff1a; 1. 读取JSON文件#xff1a; 使用Python内置的json模块可以轻松读取JSON文件。首先#xff0c;需要导入json模块并打开文件#xff0c;然后使用…import json
处理JSON文件通常涉及读取、解析和写入JSON数据的过程。下面是一些在Python中处理JSON文件的常用方法 1. 读取JSON文件 使用Python内置的json模块可以轻松读取JSON文件。首先需要导入json模块并打开文件然后使用json.load()方法将JSON数据加载到Python对象中。
import json
with open(example.json) as file:
data json.load(file)1. 解析JSON数据一旦将JSON数据加载到Python对象中就可以使用Python的语法对其进行处理。例如可以访问嵌套的字典、列表和键值对等。
# 访问嵌套的字典
name data[person][name]
age data[person][age]
# 访问列表
scores data[scores]
score_1 scores[0]
# 遍历嵌套的字典和列表
for student in data[students]:
print(student[name])
print(student[age])
print(student[scores])1. 修改JSON数据可以根据需要对JSON数据进行修改。可以修改特定的键值对添加新的键值对或删除现有的键值对。这里演示如何添加新的键值对。
data[person][email] exampleexample.com1. 写入JSON文件使用json.dump()方法将修改后的Python对象写入JSON文件。同样需要使用Python内置的open()函数打开文件指定写入模式并使用json.dump()方法将数据写入文件。
with open(output.json, w) as file:
json.dump(data, file)这些是处理JSON文件的基本步骤。根据你的具体需求可能需要更复杂的逻辑来处理更复杂的JSON结构。
实战 假设我有下面这份fio的json结果文档,叫做fio.json好了我对其进行解析抓我需要的write的IOPS和BW的结果
{fio version : fio-3.1,timestamp : 1696925985,timestamp_ms : 1696925985515,time : Tue Oct 10 16:19:45 2023,jobs : [{jobname : 128k_write_mix0_num1_iodepth64,groupid : 0,error : 0,eta : 0,elapsed : 301,job options : {name : 128k_write_mix0_num1_iodepth64,filename : /dev/nvme0n1,ioengine : libaio,direct : 1,rw : write,rwmixread : 0,bs : 128k,numjobs : 1,iodepth : 64,runtime : 300,time_based : 1,write_iops_log : ./1010/128k_write_mix0_num1_iodepth64,write_bw_log : ./1010/128k_write_mix0_num1_iodepth64,log_avg_msec : 1000},read : {io_bytes : 0,io_kbytes : 0,bw : 0,iops : 0.000000,runtime : 0,total_ios : 0,short_ios : 0,drop_ios : 0,slat_ns : {min : 0,max : 0,mean : 0.000000,stddev : 0.000000},clat_ns : {min : 0,max : 0,mean : 0.000000,stddev : 0.000000,percentile : {1.000000 : 0,5.000000 : 0,10.000000 : 0,20.000000 : 0,30.000000 : 0,40.000000 : 0,50.000000 : 0,60.000000 : 0,70.000000 : 0,80.000000 : 0,90.000000 : 0,95.000000 : 0,99.000000 : 0,99.500000 : 0,99.900000 : 0,99.950000 : 0,99.990000 : 0,0.00 : 0,0.00 : 0,0.00 : 0}},lat_ns : {min : 0,max : 0,mean : 0.000000,stddev : 0.000000},bw_min : 0,bw_max : 0,bw_agg : 0.000000,bw_mean : 0.000000,bw_dev : 0.000000,bw_samples : 0,iops_min : 0,iops_max : 0,iops_mean : 0.000000,iops_stddev : 0.000000,iops_samples : 0},write : {io_bytes : 995677306880,io_kbytes : 972341120,bw : 3241104,iops : 25321.130122,runtime : 300003,total_ios : 7596415,short_ios : 0,drop_ios : 0,slat_ns : {min : 3449,max : 120791,mean : 9509.510472,stddev : 4055.313047},clat_ns : {min : 275173,max : 26670061,mean : 2517367.006916,stddev : 1031195.720264,percentile : {1.000000 : 1056768,5.000000 : 1253376,10.000000 : 1368064,20.000000 : 1630208,30.000000 : 1892352,40.000000 : 2146304,50.000000 : 2408448,60.000000 : 2670592,70.000000 : 2867200,80.000000 : 3129344,90.000000 : 3817472,95.000000 : 4358144,99.000000 : 5734400,99.500000 : 6455296,99.900000 : 8454144,99.950000 : 9371648,99.990000 : 15269888,0.00 : 0,0.00 : 0,0.00 : 0}},lat_ns : {min : 279136,max : 26675989,mean : 2526944.836070,stddev : 1031563.153543},bw_min : 1596160,bw_max : 3427584,bw_agg : 99.997880,bw_mean : 3241035.300000,bw_dev : 309378.872013,bw_samples : 300,iops_min : 12470,iops_max : 26778,iops_mean : 25320.580000,iops_stddev : 2417.018326,iops_samples : 300},trim : {io_bytes : 0,io_kbytes : 0,bw : 0,iops : 0.000000,runtime : 0,total_ios : 0,short_ios : 0,drop_ios : 0,slat_ns : {min : 0,max : 0,mean : 0.000000,stddev : 0.000000},clat_ns : {min : 0,max : 0,mean : 0.000000,stddev : 0.000000,percentile : {1.000000 : 0,5.000000 : 0,10.000000 : 0,20.000000 : 0,30.000000 : 0,40.000000 : 0,50.000000 : 0,60.000000 : 0,70.000000 : 0,80.000000 : 0,90.000000 : 0,95.000000 : 0,99.000000 : 0,99.500000 : 0,99.900000 : 0,99.950000 : 0,99.990000 : 0,0.00 : 0,0.00 : 0,0.00 : 0}},lat_ns : {min : 0,max : 0,mean : 0.000000,stddev : 0.000000},bw_min : 0,bw_max : 0,bw_agg : 0.000000,bw_mean : 0.000000,bw_dev : 0.000000,bw_samples : 0,iops_min : 0,iops_max : 0,iops_mean : 0.000000,iops_stddev : 0.000000,iops_samples : 0},usr_cpu : 16.971887,sys_cpu : 16.700555,ctx : 3797071,majf : 0,minf : 10,iodepth_level : {1 : 0.100000,2 : 0.100000,4 : 0.100000,8 : 0.100000,16 : 0.100000,32 : 0.100000,64 : 99.999171},latency_ns : {2 : 0.000000,4 : 0.000000,10 : 0.000000,20 : 0.000000,50 : 0.000000,100 : 0.000000,250 : 0.000000,500 : 0.000000,750 : 0.000000,1000 : 0.000000},latency_us : {2 : 0.000000,4 : 0.000000,10 : 0.000000,20 : 0.000000,50 : 0.000000,100 : 0.000000,250 : 0.000000,500 : 0.010000,750 : 0.032186,1000 : 0.438352},latency_ms : {2 : 34.327943,4 : 57.133003,10 : 8.031209,20 : 0.030922,50 : 0.010000,100 : 0.000000,250 : 0.000000,500 : 0.000000,750 : 0.000000,1000 : 0.000000,2000 : 0.000000,2000 : 0.000000},latency_depth : 64,latency_target : 0,latency_percentile : 100.000000,latency_window : 0}],disk_util : [{name : nvme0n1,read_ios : 44,write_ios : 7593512,read_merges : 0,write_merges : 0,read_ticks : 4,write_ticks : 19039100,in_queue : 18805644,util : 100.000000}]
}with open(fio.json) as file: data json.load(file)
#这里的data[jobs][0]代表取字典jobs的值后是一个[],看作为List需要取list里面的值我们这里只有一个取[0],取到以后再取key [write],在这个字典下取key[iops],则可以拿到对应的iops的值
iops data[jobs][0][write][iops]
bw data[jobs][0][write][bw]这里我们最后 iops和bw的值分别为25321.130122 和 3241104 感兴趣可以一个一个试看输出的是什么 即打印
print(data[jobs])
print(data[jobs][0])以此类推观察每一步有啥输出有助理解