Files
jupyter/体测单位/石家庄石化.ipynb
T
2023-05-16 23:06:49 +08:00

52 KiB

导入人员信息

In [8]:
import openpyxl
import json


wb = openpyxl.load_workbook('data/student_20140922(石家庄监测花名册2023年).xlsx')
sheet = wb.active
# sheets = wb.sheetnames
person = {}

for n in range(2, sheet.max_row+1):
    if sheet.cell(n,1).value is not None:
        code = int(sheet.cell(n, 4).value)
        person.setdefault(code, {})
        dict1 = {}
        dict1['name'] = sheet.cell(n, 6).value
        if sheet.cell(n, 7).value ==1:
            sex = '男'
        else:
            sex = '女'
        dict1['sex'] = sex
        dict1['unit'] = sheet.cell(n, 3).value
        dict1['birth'] = sheet.cell(n, 8).value
        person[code] = dict1
filename = 'data/石家庄2023.json'
with open(filename, 'w') as fl:
    json.dump(person, fl, ensure_ascii=False,default=str)
print('ok')
ok

每日成绩导入

In [36]:
import json
import time
import csv

filename = '../item.json'
item = {}
unit = {}
with open(filename,'r') as fl:
    dict1 = json.load(fl) 
for k,v in dict1.items():
    item[k] = v
re_ta = {}
dict1 = {}
list1 = []
filename = 'data/石家庄2023.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl) 

filename = 'data/places_result_20230427-sjz.csv'
with open(filename,'r',newline='') as csv_file:
    fl = csv.reader(csv_file,delimiter=',')
    header = next(fl)    
    for line in fl:
        #line = re.sub('[\r\n\f ]{1,}', '', line)
        list1.append(line)
#print(list1)
for result in list1:
    user = str(result[2])
    if user in dict1.keys():
        
        m_item = str(result[3])    
        re_ta.setdefault(user,{})    
        re_ta[user]['name'] = dict1[user]['name']
        re_ta[user]['sex'] = dict1[user]['sex'] 
        re_ta[user]['部门'] = dict1[user]['unit']
        item_name = item[m_item]['name']
        re_ta[user].setdefault(item_name,{})  
        score = int(result[4])/item[m_item]['divisor']    
        re_ta[user][item_name]['成绩'] = f'{score} {item[m_item]["unit"]}'
print(len(re_ta))
filename = 'data/result_石家庄(20230427).json'
with open(filename,'w') as fl:
    json.dump(re_ta, fl) 
print('ok')
118
ok

每日成绩导出

In [42]:
import json
import openpyxl

items = ['身高','体重','肺活量','握力','坐位体前屈','纵跳','俯卧撑','一分钟仰卧起坐','单脚站立','选择反应时','台阶指数']
title = ['编号','姓名','性别','单位','身高','体重','肺活量','握力','坐位体前屈','纵跳','俯卧撑','一分钟仰卧起坐','单脚站立','选择反应时','台阶指数']
filename = 'data/result_石家庄.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl)

filename = 'data/石家庄2023.json'
with open(filename,'r') as fl:
    dict2 = json.load(fl)
    
list1 = []
for k, v in dict1.items():
    list2 = []
    list2.append(str(k).rjust(5,'0'))
    list2.append(v['name'])    
    list2.append(dict2[k]['sex'])
    list2.append(dict2[k]['unit'])    
    
    for item in items:
        if item in v.keys():
            list2.append(v[item]['成绩'])            
        elif item =='name':
            list2.append(v[item])
        else:
            list2.append('') 
    list1.append(list2)
filename = 'data/石家庄石化体测情况表.xlsx'
wb = openpyxl.Workbook()
sheet = wb.active
sheet.append(title)
for row in list1:
    sheet.append(row)
    
wb.save(filename)

总成绩导入

In [41]:
import json
import time
import csv

filename = '../item.json'
item = {}
unit = {}
with open(filename,'r') as fl:
    dict1 = json.load(fl) 
for k,v in dict1.items():
    item[k] = v
re_ta = {}
dict1 = {}
list1 = []
filename = 'data/石家庄2023.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl) 

filename = 'data/places_result_20230505-sjz.csv'
with open(filename,'r',newline='') as csv_file:
    fl = csv.reader(csv_file,delimiter=',')
    header = next(fl)    
    for line in fl:
        #line = re.sub('[\r\n\f ]{1,}', '', line)
        list1.append(line)
#print(list1)
for result in list1:
    user = str(result[2])
    if user in dict1.keys():
        
        m_item = str(result[3])    
        re_ta.setdefault(user,{})    
        re_ta[user]['name'] = dict1[user]['name']
        re_ta[user]['sex'] = dict1[user]['sex'] 
        re_ta[user]['部门'] = dict1[user]['unit']
        item_name = item[m_item]['name']
        re_ta[user].setdefault(item_name,{})  
        score = int(result[4])/item[m_item]['divisor']    
        re_ta[user][item_name]['成绩'] = f'{score} {item[m_item]["unit"]}'
print(len(re_ta))
filename = 'data/result_石家庄.json'
with open(filename,'w') as fl:
    json.dump(re_ta, fl) 
print('ok')
2254
ok
In [ ]:
In [39]:
import json
import openpyxl

items = ['身高','体重','肺活量','握力','坐位体前屈','纵跳','俯卧撑','一分钟仰卧起坐','单脚站立','选择反应时','台阶指数']
title = ['编号','姓名','性别','单位','身高','体重','肺活量','握力','坐位体前屈','纵跳','俯卧撑','一分钟仰卧起坐','单脚站立','选择反应时','台阶指数']
filename = 'data/result_石家庄.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl)

filename = 'data/石家庄2023.json'
with open(filename,'r') as fl:
    dict2 = json.load(fl)
    
list1 = []
for k, v in dict1.items():
    list2 = []
    list2.append(str(k).rjust(5,'0'))
    list2.append(v['name'])    
    list2.append(dict2[k]['sex'])
    list2.append(dict2[k]['unit'])    
    
    for item in items:
        if item in v.keys():
            list2.append(v[item]['成绩'])            
        elif item =='name':
            list2.append(v[item])
        else:
            list2.append('') 
    list1.append(list2)
filename = 'data/石家庄石化体测情况表.xlsx'
wb = openpyxl.Workbook()
sheet = wb.active
sheet.append(title)
for row in list1:
    sheet.append(row)
    
wb.save(filename)

统计部门测试情况

In [35]:
import json
import openpyxl

filename = 'data/result_石家庄.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl)
dict2 = {}
for k, v in dict1.items():
    unit = v['部门']
    dict2.setdefault(unit,0)
    dict2[unit] = dict2[unit] + 1
print(dict2)
title =['单位','体测人数']
list1 = [] 
for k, v in dict2.items():
    list2 = []
    list2 = [k,v]
    list1.append(list2)
filename = 'data/石家庄测试名单部门情况(20230426).xlsx'
wb = openpyxl.Workbook()
sheet = wb.active
sheet.append(title)
for row in list1:
    sheet.append(row)
wb.save(filename)
{'综合办公室(党委办公室)': 19, '销运管理部': 41, '企业管理部(法律事务部)': 12, '合资运行部': 27, '消防支队': 39, '设备工程部': 44, '党群文化部(宣传工团)': 9, '检验计量中心': 180, '发展计划部计划组': 11, '物资采购中心': 52, '炼油运行一部': 112, '审计管理部': 6, '发展计划部发展规划组': 12, '财务管理部': 18, '生产技术部': 35, '党委组织部(资源管理部)': 16, '安全环保部': 26, '储运运行部': 151, '化工运行部': 267, '信息中心': 18, '热电运行部': 92, '炼油运行三部': 127, '行政事务中心': 45, '电气仪表中心': 196, '炼油运行五部': 120, '水务运行部': 133, '编组站': 49, '炼油运行二部': 113, '炼油运行四部': 168, '纪委(监督部)': 2}

统计未测试人员名单

In [34]:
import json
import openpyxl

filename = 'data/result_石家庄.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl)
list1 = []
filename = 'data/石家庄2023.json'
with open(filename,'r') as fl:
    dict2 = json.load(fl)
for k, v in dict2.items():
    if k not in dict1.keys():
        list1.append([k,v['name'],v['unit']])
filename = 'data/石家庄未测试名单(截至20230426).xlsx'
wb = openpyxl.Workbook()
sheet = wb.active
title =['测试编号','姓名','单位']
sheet.append(title)
for row in list1:
    sheet.append(row)
wb.save(filename)

生成查询文件

In [91]:
import json
filename = 'data/result_石家庄.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl)
dict2 = {}
for k, v in dict1.items():
    dict2[k] = v['name']
filename = 'data/shijiazhuang.json'
with open(filename, 'w') as fl:
    json.dump(dict2, fl, ensure_ascii=False)
print('ok')
    
ok

数据分析

获取清理后报告数据

In [29]:
import json
import time
import csv

filename = '../item.json'
item = {}
unit = {}
with open(filename,'r') as fl:
    dict1 = json.load(fl) 
for k,v in dict1.items():
    item[k] = v
filename = 'data/石家庄2023.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl)

re_ta = {}
list1 = []
#print("\n运动项目信息:")
filename = 'data/places_result_sjz.csv'
with open(filename,'r',newline='') as csv_file:
    fl = csv.reader(csv_file,delimiter=',')
    header = next(fl)    
    for line in fl:
        #line = re.sub('[\r\n\f ]{1,}', '', line)
        list1.append(line)
#print(list1)
for result in list1:
    user = str(result[2])
    if user in dict1.keys():
        
        m_item = str(result[3])    
        re_ta.setdefault(user,{})    
        re_ta[user]['name'] = dict1[user]['name']
        re_ta[user]['unit'] = dict1[user]['unit']
        re_ta[user]['sex'] = dict1[user]['sex']
        re_ta[user]['birth'] = dict1[user]['birth']
        item_name = item[m_item]['name']
        re_ta[user].setdefault(item_name,{})  
        score = int(result[4])/item[m_item]['divisor']    
        re_ta[user][item_name]['成绩'] = f'{score} {item[m_item]["unit"]}'
        re_ta[user][item_name]['得分'] =result[5]
filename = 'data/result_石家庄.json'
print(len(re_ta))
liwai = []
for k, v in re_ta.items():
    if (len(v)<8 and '身高' in v and '体重' in v) or (len(v)<7 and '身高' not in v and '体重' not in v) :
        liwai.append(k)
print(liwai)
for k in liwai:
    del re_ta[k]
print(len(re_ta))
filename = 'data/result_石家庄.json'
with open(filename,'w') as fl:
    json.dump(re_ta, fl) 
print('ok')
2253
['988', '2088', '2199', '1112', '2192', '523', '584', '170', '89', '1974', '1181', '1926', '846', '850', '2324', '2098', '2024', '2083', '1329', '1237']
2233
ok

核对报告

In [26]:
import json
import time
import csv
import os,sys,shutil
import glob

filename = 'data/result_石家庄.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl)

m_path = 'file/2023-04-30'
old = []
fls = glob.glob(f'{m_path}/*.pdf')
for fn in fls:
    #old = os.path.basename(fn).split('.')[0].rjust(8,'0') 
    old.append(os.path.basename(fn).split('.')[0])
for k, v in dict1.items():
    if k not in old and '身高' not in v.keys():
        print(k,v,'\n')
2388 {'name': '任宁', 'unit': '化工运行部', 'sex': '男', 'birth': '1982-01-16 00:00:00', '肺活量': {'成绩': '3292.0 毫升', '得分': '3'}, '选择反应时': {'成绩': '0.56 秒', '得分': '3'}, '握力': {'成绩': '41.6 千克', '得分': '2'}} 

986 {'name': '左少卿', 'unit': '炼油运行一部', 'sex': '男', 'birth': '1990-1-1', '肺活量': {'成绩': '2106.0 毫升', '得分': '0'}, '选择反应时': {'成绩': '0.665 秒', '得分': '1'}, '握力': {'成绩': '45.2 千克', '得分': '3'}} 

2053 {'name': '韩海涛', 'unit': '水务运行部', 'sex': '男', 'birth': '1971-2-1', '肺活量': {'成绩': '2414.0 毫升', '得分': '2'}, '握力': {'成绩': '38.8 千克', '得分': '2'}, '选择反应时': {'成绩': '0.591 秒', '得分': '3'}} 

2356 {'name': '张义生', 'unit': '编组站', 'sex': '男', 'birth': '1981-7-1', '肺活量': {'成绩': '1904.0 毫升', '得分': '0'}, '握力': {'成绩': '39.8 千克', '得分': '2'}, '选择反应时': {'成绩': '0.553 秒', '得分': '3'}} 

1974 {'name': '鲍英杰', 'unit': '热电运行部', 'sex': '男', 'birth': '1979-8-1', '肺活量': {'成绩': '4006.0 毫升', '得分': '4'}} 

1987 {'name': '贾宁', 'unit': '热电运行部', 'sex': '男', 'birth': '1979-1-1', '握力': {'成绩': '46.3 千克', '得分': '3'}, '单脚站立': {'成绩': '4.2 秒', '得分': '2'}, '选择反应时': {'成绩': '0.592 秒', '得分': '2'}} 

计算人员年龄

In [49]:
import json
import datetime

filename = 'data/result_石家庄.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl)
for k, v in dict1.items():
    birth = v['birth'].split()[0].split('-')
    
    nian = int(birth[0].strip())
    yue = int(birth[1].strip())
    ri = int(birth[2].strip())
    #print(k,nian,yue,ri)
    days = (datetime.date(2023, 4, 23)-datetime.date(nian,yue,ri)).days
    v['age'] = round(days/365)
filename = 'data/result_石家庄.json'
with open(filename,'w') as fl:
    json.dump(dict1, fl) 
print('ok')    
ok

汇总人员信息及成绩

In [ ]:
import json


items = ['体重','肺活量','握力','坐位体前屈','纵跳','俯卧撑','一分钟仰卧起坐','单脚站立','选择反应时','台阶指数']

filename = 'data/result_石家庄.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl) 
for k,v in dict1.items():
    score = 0
    i = 0
    for k1,v1 in v.items():  
        if k1 in items:
            score = score + int(v1['得分'])
            i+=1
    dict1[k]['score'] = round(score/i,2)            
filename = 'data/result_石家庄.json'
with open(filename,'w') as fl:
    json.dump(dict1, fl) 
print('ok')

计算测试等级

In [55]:
import json

filename = 'data/result_石家庄.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl) 
dict2 = {}
dict2['不合格'] = [0,255]
dict2['合格'] = [256,332]
dict2['良好'] = [333,367]
dict2['优秀'] = [368,500]

for k1, v1 in dict2.items():
    di = v1[0]
    gao = v1[1]
    i = 0    
    m = 0
    f = 0
    for k,v in dict1.items():
        if int(v['score']*100) in range(di,gao+1):
            dict1[k]['level'] = k1
            i+=1
            if v['sex'] == '男':
                m = m +1
            else:
                f = f+1
    print(f'{di}~{gao}分人数:{i}人,男性:{m}人,女性:{f}人')
filename = 'data/result_石家庄.json'
with open(filename,'w') as fl:
    json.dump(dict1, fl) 
print('ok')
0~255分人数:779人,男性:678人,女性:101人
256~332分人数:1009人,男性:786人,女性:223人
333~367分人数:316人,男性:189人,女性:127人
368~500分人数:129人,男性:57人,女性:72人
ok

根据年龄汇总人员信息及成绩

In [57]:
import json

nld = [[20,24],[25,29],[30,34],[35,39],[40,44],[45,49],[50,54],[55,59],[60,69]]
filename = 'data/result_石家庄.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl) 
for item in nld:
    di = item[0]
    gao = item[1]
    i = 1
    score = 0
    m = 0
    f = 0
    for k,v in dict1.items():
        if v['age'] in range(di,gao+1):
            score = score+v['score']
            i+=1
            if v['sex'] == '男':
                m = m +1
            
    print(f'{di}~{gao}岁平均成绩:{round(score/i,2)}分,人数:{i-1}人,男性:{m}人')
20~24岁平均成绩:2.48分,人数:107人,男性:94人
25~29岁平均成绩:2.54分,人数:84人,男性:54人
30~34岁平均成绩:2.69分,人数:204人,男性:159人
35~39岁平均成绩:2.78分,人数:213人,男性:166人
40~44岁平均成绩:2.79分,人数:330人,男性:254人
45~49岁平均成绩:2.84分,人数:449人,男性:278人
50~54岁平均成绩:2.81分,人数:532人,男性:402人
55~59岁平均成绩:2.6分,人数:293人,男性:282人
60~69岁平均成绩:2.5分,人数:21人,男性:21人
In [87]:
import json

nld = [[20,24],[25,29],[30,34],[35,39],[40,44],[45,49],[50,54],[55,59],[60,69]]
filename = 'data/result_石家庄.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl) 
for item in nld:
    di = item[0]
    gao = item[1]
    i = 1
    score = 0
    m = 0
    f = 0
    for k,v in dict1.items():
        if v['age'] in range(di,gao+1) and v['sex'] == '男':
            score = score+v['score']
            i+=1
            
            
    print(f'{di}~{gao}岁平均成绩:{round(score/i,2)}分,人数:{i-1}人')
20~24岁平均成绩:2.46分,人数:94人
25~29岁平均成绩:2.36分,人数:54人
30~34岁平均成绩:2.58分,人数:159人
35~39岁平均成绩:2.7分,人数:166人
40~44岁平均成绩:2.71分,人数:254人
45~49岁平均成绩:2.71分,人数:278人
50~54岁平均成绩:2.69分,人数:402人
55~59岁平均成绩:2.59分,人数:282人
60~69岁平均成绩:2.5分,人数:21人
In [89]:
import json
nld = [[20,24],[25,29],[30,34],[35,39],[40,44],[45,49],[50,54],[55,59],[60,69]]
filename = 'data/result_石家庄.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl) 
for item in nld:
    di = item[0]
    gao = item[1]
    i = 1
    score = 0
    m = 0
    f = 0
    for k,v in dict1.items():
        if v['age'] in range(di,gao+1) and v['sex'] == '女':
            score = score+v['score']
            i+=1
            
            
    print(f'{di}~{gao}岁平均成绩:{round(score/i,2)}分,人数:{i-1}人')
20~24岁平均成绩:2.41分,人数:13人
25~29岁平均成绩:2.77分,人数:30人
30~34岁平均成绩:3.02分,人数:45人
35~39岁平均成绩:2.99分,人数:47人
40~44岁平均成绩:3.03分,人数:76人
45~49岁平均成绩:3.02分,人数:171人
50~54岁平均成绩:3.18分,人数:130人
55~59岁平均成绩:2.61分,人数:11人
60~69岁平均成绩:0.0分,人数:0人

生成平均成绩直方图

In [71]:
import pygal
from pygal.style import Style

custom_style = Style(
    colors=('#9BC850', '#ffeb44', '#ff00ff'))

filename = 'data/result_石家庄.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl) 
pjf = []
for k, v in dict1.items():    
    pjf.append(v['score'])
pjf.sort()
bar_chart = pygal.Bar(style=custom_style)
bar_chart.add('平均分',pjf)  # Add some values
bar_chart.render_to_file('bar_chart.svg')  

计算平均成绩

In [77]:
import json

nld = [[20,24],[25,29],[30,34],[35,39],[40,44],[45,49],[50,54],[55,59],[60,69]]
filename = 'data/result_石家庄.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl) 
i = 1
m = 0
f = 0
score = 0
t_score = 0
for k,v in dict1.items():
    if v['sex'] == '男':
        m = m +1
        score = score+v['score']
print(f'平均成绩:{round(score/m,4)}分,男性:{m}人')
t_score = t_score + score
score = 0
for k,v in dict1.items():
    if v['sex'] == '女':
        f = f +1
        score = score+v['score']
print(f'平均成绩:{round(score/f,4)}分,女性:{f}人')
t_score = t_score + score
print(f'平均成绩:{round(t_score/2233,4)}分,女性:2233人')
平均成绩:2.6583分,男性:1710人
平均成绩:3.064分,女性:523人
平均成绩:2.7533分,女性:2233人

计算测试等级

In [80]:
import json

filename = 'data/result_石家庄.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl) 
dict2 = {}
dict2['不合格'] = [0,255]
dict2['合格'] = [256,332]
dict2['良好'] = [333,367]
dict2['优秀'] = [368,500]

for k1, v1 in dict2.items():
    di = v1[0]
    gao = v1[1]
    i = 0    
    m = 0
    f = 0
    for k,v in dict1.items():
        if int(v['score']*100) in range(di,gao+1):
            dict1[k]['level'] = k1
            i+=1
            if v['sex'] == '男':
                m = m +1
            else:
                f = f+1
    print(f'{di}~{gao}分人数:{i}人,男性:{m}人,女性:{f}人')
filename = 'data/result_石家庄.json'
with open(filename,'w') as fl:
    json.dump(dict1, fl) 
print('ok')
0~255分人数:779人,男性:678人,女性:101人
256~332分人数:1009人,男性:786人,女性:223人
333~367分人数:316人,男性:189人,女性:127人
368~500分人数:129人,男性:57人,女性:72人
ok

计算各年龄段测试等级(男)

In [83]:
nld = [[20,24],[25,29],[30,34],[35,39],[40,44],[45,49],[50,54],[55,59],[60,69]]
filename = 'data/result_石家庄.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl) 
dict2 = {}
dict2['不合格'] = [0,255]
dict2['合格'] = [256,332]
dict2['良好'] = [333,367]
dict2['优秀'] = [368,500]
dict3 = {}
for item in nld:
    di = item[0]
    gao = item[1]
    age = f'{di}-{gao}'
    dict3.setdefault(age,{})
    i = 0    
    m = 0
    f = 0
    for k,v in dict1.items():
        if v['age'] in range(di,gao+1):            
            dict3[age].setdefault(v['level'],0)
            if v['sex'] == '女':
                dict3[age][v['level']] = dict3[age][v['level']]+1
            
for k, v in dict3.items():
    print(k,v)
20-24 {'不合格': 4, '合格': 9, '良好': 0}
25-29 {'合格': 13, '优秀': 2, '不合格': 9, '良好': 6}
30-34 {'不合格': 8, '良好': 13, '合格': 20, '优秀': 4}
35-39 {'合格': 20, '良好': 13, '不合格': 9, '优秀': 5}
40-44 {'合格': 31, '不合格': 16, '良好': 17, '优秀': 12}
45-49 {'优秀': 20, '合格': 67, '良好': 46, '不合格': 38}
50-54 {'合格': 57, '不合格': 14, '良好': 30, '优秀': 29}
55-59 {'合格': 6, '不合格': 3, '优秀': 0, '良好': 2}
60-69 {'合格': 0, '优秀': 0, '不合格': 0, '良好': 0}

按照部门计算平均成绩

In [84]:
with open(filename,'r') as fl:
    dict1 = json.load(fl) 
depart = []
for k, v in dict1.items():
    if v['unit'] not in depart:
        depart.append(v['unit'])

for item in depart:
    score = 0
    n = 0
    for k, v in dict1.items():
        if item == v['unit']:
            score = score + v['score']
            n = n +1 
    print(item,round(score/n,2),n)
        
综合办公室(党委办公室) 3.06 22
销运管理部 2.99 45
企业管理部(法律事务部) 2.84 12
合资运行部 2.9 27
消防支队 2.98 43
设备工程部 3.0 44
党群文化部(宣传工团) 2.98 10
检验计量中心 2.86 185
发展计划部计划组 3.03 12
物资采购中心 2.93 55
炼油运行一部 2.6 112
审计管理部 2.93 6
发展计划部发展规划组 2.99 13
财务管理部 3.03 17
生产技术部 2.85 37
党委组织部(资源管理部) 3.24 16
安全环保部 3.15 26
储运运行部 2.64 160
化工运行部 2.74 269
信息中心 2.95 17
电气仪表中心 2.86 226
热电运行部 2.5 91
炼油运行三部 2.58 140
行政事务中心 2.49 47
炼油运行五部 2.78 124
水务运行部 2.75 135
编组站 2.44 50
炼油运行二部 2.68 113
炼油运行四部 2.67 176
纪委(监督部) 3.0 3

计算各项目成绩

In [85]:
filename = 'data/result_石家庄.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl) 
items = ['体重','肺活量','握力','坐位体前屈','纵跳','俯卧撑','一分钟仰卧起坐','单脚站立','选择反应时','台阶指数']
for item in items:
    score = 0
    n = 0
    for k, v in dict1.items():
        if item in v.keys():
            n = n + 1
            score =score + int(v[item]['得分'])
    print(item,round(score/n,2))
体重 3.49
肺活量 3.26
握力 2.54
坐位体前屈 3.06
纵跳 1.9
俯卧撑 2.39
一分钟仰卧起坐 3.9
单脚站立 2.23
选择反应时 2.9
台阶指数 3.01
In [90]:
filename = 'data/tiangongyuan.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl) 
print(dict1)
{'1': {'name': '齐新', 'phone': '13810412119'}, '2': {'name': '代盼盼', 'phone': '18811016592'}, '7': {'name': '陈建侨', 'phone': '18518668138'}, '8': {'name': '孟琳', 'phone': '13810582314'}, '15': {'name': '赵文静', 'phone': '18612218066'}, '16': {'name': '高艳丽', 'phone': '17746578620'}, '17': {'name': '魏腾飞', 'phone': '18519094064'}, '19': {'name': '杨爽', 'phone': '13911804937'}, '20': {'name': '杨静', 'phone': '15201222908'}, '21': {'name': '王京亚', 'phone': '15210034201'}, '22': {'name': '张笑寒', 'phone': '13811282007'}, '23': {'name': '周海苗', 'phone': '15811323860'}, '24': {'name': '胡颖', 'phone': '15901552680'}, '25': {'name': '孙鑫', 'phone': '15810028607'}, '26': {'name': '徐栋刚', 'phone': '13611378746'}, '27': {'name': '屈俊英', 'phone': '15321996557'}, '28': {'name': '侯然', 'phone': '15811321170'}, '29': {'name': '高梦珊', 'phone': '18310115505'}, '30': {'name': '王璐', 'phone': '18210908699'}, '31': {'name': '赵晨阳', 'phone': '13811750045'}, '32': {'name': '张子娣', 'phone': '13811679953'}, '33': {'name': '张昊翔', 'phone': '13699269376'}, '34': {'name': '霍东林', 'phone': '13701385970'}, '37': {'name': '刘鑫', 'phone': '13120475746'}, '39': {'name': '吴家硕', 'phone': '17600977328'}, '40': {'name': '田征', 'phone': '13552876727'}, '41': {'name': '张静瑶', 'phone': '13681188042'}, '42': {'name': '周维', 'phone': '13683093209'}, '43': {'name': '王芳', 'phone': '13439355291'}, '44': {'name': '刘静', 'phone': '13671067523'}, '45': {'name': '张翠萍', 'phone': '13426307538'}, '46': {'name': '郭晏辰', 'phone': '13522701405'}, '49': {'name': '王亚峰', 'phone': '13691445507'}, '50': {'name': '杨静', 'phone': '13436666818'}, '51': {'name': '刘海云', 'phone': '15011151011'}, '53': {'name': '李丽', 'phone': '13521299700'}, '54': {'name': '余华国', 'phone': '13611383112'}, '58': {'name': '叶红', 'phone': '13699107409'}, '59': {'name': '杨雪', 'phone': '13581675022'}, '60': {'name': '胡宇翔', 'phone': '18612251290'}, '61': {'name': '耿利群', 'phone': '13717616853'}, '62': {'name': '张丽侠', 'phone': '13716114708'}, '63': {'name': '郭萌萌', 'phone': '15811322896'}, '64': {'name': '刘然', 'phone': '13810646725'}, '65': {'name': '王芳', 'phone': '13811152058'}, '66': {'name': '李雪', 'phone': '18201450903'}, '67': {'name': '刘秋红', 'phone': '13581670255'}, '68': {'name': '罗琪', 'phone': '13693021978'}, '69': {'name': '刘影翠', 'phone': '13716611017'}, '70': {'name': '李芳', 'phone': '13720086106'}, '71': {'name': '王红晶', 'phone': '13911385423'}, '72': {'name': '翁田田', 'phone': '15210580711'}, '73': {'name': '宋丹', 'phone': '18610698277'}, '74': {'name': '焦阳', 'phone': '13691376452'}, '76': {'name': '孙科', 'phone': '13381073047'}, '78': {'name': '齐占先', 'phone': '13718162901'}, '79': {'name': '刘成', 'phone': '13901322542'}, '80': {'name': '尹玉岐', 'phone': '13911810030'}, '81': {'name': '祁俊', 'phone': '13911778826'}, '82': {'name': '王超', 'phone': '13691485486'}, '83': {'name': '肖国颖', 'phone': '13552568891'}, '84': {'name': '马欣欢', 'phone': '15901057009'}, '86': {'name': '宋新华', 'phone': '13683673008'}, '87': {'name': '李建坤', 'phone': '15010250252'}, '88': {'name': '李雪萌', 'phone': '13811680197'}, '90': {'name': '莱阳', 'phone': '18210672698'}, '92': {'name': '霍少博', 'phone': '15910351351'}, '93': {'name': '杜劲', 'phone': '13681129230'}, '94': {'name': '殷爽', 'phone': '13501210584'}, '95': {'name': '毛佳', 'phone': '15210691317'}, '96': {'name': '徐韬韫', 'phone': '15901441970'}, '97': {'name': '杨跃超', 'phone': '15910281728'}, '98': {'name': '张举', 'phone': '18610224503'}, '99': {'name': '蔺少华', 'phone': '18600655580'}, '100': {'name': '宁培', 'phone': '13810303077'}, '101': {'name': '朱影', 'phone': '15811174828'}, '102': {'name': '孙然', 'phone': '15810802850'}, '103': {'name': '叶文君', 'phone': '13716840153'}, '104': {'name': '刘旭', 'phone': '13651000624'}, '105': {'name': '闫超阔', 'phone': '18210273718'}, '108': {'name': '王君', 'phone': '13691332722'}, '109': {'name': '张秋瑾', 'phone': '13269560927'}, '110': {'name': '史维维', 'phone': '15010368255'}, '111': {'name': '张泽', 'phone': '15010234727'}, '112': {'name': '孙林', 'phone': '13520752811'}, '113': {'name': '王润生', 'phone': '13261988826'}, '114': {'name': '崔亚菲', 'phone': '13810979122'}, '115': {'name': '李雪娇', 'phone': '15910619124'}, '116': {'name': '柳建军', 'phone': '13011030093'}, '117': {'name': '孙学勇', 'phone': '13520765718'}, '118': {'name': '董兰兰', 'phone': '13910303323'}, '119': {'name': '陈娜', 'phone': '18510337879'}, '120': {'name': '杨帆', 'phone': '18610229696'}, '122': {'name': '张春贤', 'phone': '17310179107'}, '123': {'name': '张立伟', 'phone': '13911285239'}, '124': {'name': '李岩', 'phone': '15810525991'}, '126': {'name': '肖杰', 'phone': '13466726203'}, '127': {'name': '张振宇', 'phone': '15910659316'}, '128': {'name': '汪伟', 'phone': '13911416349'}, '129': {'name': '张晓银', 'phone': '13501239434'}, '130': {'name': '马玉桥', 'phone': '13683207236'}, '131': {'name': '吕灿', 'phone': '13269115851'}, '132': {'name': '于双双', 'phone': '18001370626'}, '133': {'name': '贾鹏', 'phone': '13581577666'}, '134': {'name': '张雪', 'phone': '13910212354'}, '135': {'name': '王迪', 'phone': '19800383262'}, '136': {'name': '兰法坡', 'phone': '13683298902'}, '137': {'name': '陆志刚', 'phone': '13716622494'}, '138': {'name': '张国虎', 'phone': '13651376603'}, '139': {'name': '张学超', 'phone': '13520253719'}, '140': {'name': '康玉林', 'phone': '13552112130'}, '141': {'name': '李满存', 'phone': '13552872968'}, '142': {'name': '赵金义', 'phone': '13366615285'}, '143': {'name': '刘劲松', 'phone': '15010832956'}, '144': {'name': '韩旭', 'phone': '17600988129'}, '147': {'name': '高洪影', 'phone': '13552119586'}, '148': {'name': '刘万凯', 'phone': '13683339037'}, '149': {'name': '王超', 'phone': '13911939930'}, '150': {'name': '张建杰', 'phone': '18511186138'}, '151': {'name': '薛贺', 'phone': '13691358158'}, '152': {'name': '张秀荣', 'phone': '13716648282'}, '153': {'name': '马小英', 'phone': '15910231342'}, '154': {'name': '任任', 'phone': '13910519224'}, '155': {'name': '王燕含', 'phone': '18601126504'}, '156': {'name': '王志博', 'phone': '17610603732'}, '157': {'name': '韦杰友', 'phone': '13521551136'}, '158': {'name': '李文业', 'phone': '13831351283'}, '159': {'name': '李炳忠', 'phone': '15245887158'}, '160': {'name': '李景文', 'phone': '13644589589'}, '161': {'name': '张慧锋', 'phone': '18790630680'}, '162': {'name': '张玉英', 'phone': '18201187087'}, '163': {'name': '魏铁', 'phone': '18500399231'}, '164': {'name': '李龙', 'phone': '18545428957'}, '165': {'name': '鲁丹', 'phone': '15910286571'}, '166': {'name': '王成才', 'phone': '13683325919'}, '167': {'name': '李亮', 'phone': '13021026178'}, '168': {'name': '刘素芳', 'phone': '13718625812'}, '169': {'name': '吕云霞', 'phone': '18901325393'}, '170': {'name': '段苏菲', 'phone': '13041038841'}, '171': {'name': '张泽强', 'phone': '13897829556'}, '172': {'name': '刘会强', 'phone': '13791542068'}, '173': {'name': '张建峰', 'phone': '13897829556'}, '174': {'name': '马东明', 'phone': '13716383150'}, '175': {'name': '李东峰', 'phone': '18811266311'}, '176': {'name': '田佳强', 'phone': '15650768161'}}
In [ ]: