73 KiB
73 KiB
In [39]:
import openpyxl
import json
from datetime import date
wb = openpyxl.load_workbook('data/镇海参加测试人员名单(合并).xlsx')
sheet = wb.active
# sheets = wb.sheetnames
person = {}
for n in range(2, sheet.max_row+1):
code = int(sheet.cell(n, 1).value)
person.setdefault(code, {})
dict1 = {}
dict1['name'] = sheet.cell(n, 2).value
dict1['sex'] = sheet.cell(n, 3).value
dict1['unit'] = sheet.cell(n, 5).value
if sheet.cell(n, 6).value is not None:
dict1['gh'] = sheet.cell(n, 6).value
dict1['birth'] = str(sheet.cell(n, 4).value).replace('/','-').split(' ')[0]
if sheet.cell(n, 7).value is not None:
dict1['phone'] = str(sheet.cell(n,7).value)
person[code] = dict1
filename = 'data/镇海(合并).json'
with open(filename, 'w') as fl:
json.dump(person, fl, ensure_ascii=False)
print('ok')ok
In [ ]:
import json
filename = 'data/镇海.json'
with open(filename,'r') as fl:
dict1 = json.load(fl)
list1 = []
for k, v in dict1.items():
dict2 = {}
#if dict1['sex'] =='男':
# sex = 1
dict2 = {'id':k,'name':v['name'],'gender':v['sex'],'birth':v['birth'],'unit':v['unit']}
list1.append(dict2)
json_data = json.dumps(list1,ensure_ascii=False, indent=4)
# 将 json 数据写入文件
with open("data/data_镇海.json", "w",encoding = 'utf-8') as file:
file.write(json_data)
print('ok')In [40]:
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/镇海(合并).json'
with open(filename,'r') as fl:
dict1 = json.load(fl)
filename = 'data/places_result_20240922.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]['unit'] = dict1[user]['unit']
#re_ta[user]['sub_unit'] = dict1[user]['sub_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, ensure_ascii=False)
print(len(re_ta))1365 1365
In [ ]:
import json
import openpyxl
items = ['身高','体重','肺活量','握力','坐位体前屈','纵跳','俯卧撑','一分钟仰卧起坐','单脚站立','选择反应时','台阶指数']
title = ['编号','姓名','性别','单位','部门','身高','体重','肺活量','握力','坐位体前屈','纵跳','俯卧撑','一分钟仰卧起坐','单脚站立','选择反应时','台阶指数']
filename = 'data/result_镇海.json'
with open(filename,'r') as fl:
dict1 = json.load(fl)
filename = 'data/镇海体测人员.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('')
list2.append(dict2[k]['gwxl'])
list2.append(dict2[k]['gzz'])
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 [ ]:
import json
import openpyxl
filename = 'data/result_镇海.json'
with open(filename,'r') as fl:
dict1 = json.load(fl)
filename = 'data/镇海1.json'
with open(filename,'r') as fl:
dict2 = json.load(fl)
list1 = []
i = 1
for k, v in dict2.items():
if k not in dict1.keys():
list2 = [i,k,v['name'],v['unit']]
i+=1
list1.append(list2)
#print(list1)
filename = f'data/镇海未测试人员名单(截至20240922).xlsx'
title = ['序号','员工编号','姓名','部门']
wb = openpyxl.Workbook()
sheet = wb.active
sheet.append(title)
for row in list1:
sheet.append(row)
wb.save(filename)In [ ]:
import json
filename = 'data/镇海.json'
with open(filename,'r') as fl:
dict1 = json.load(fl)
print(len(dict1))
dict2 = {}
for k, v in dict1.items():
if 'phone' in v.keys():
dict2.setdefault(k,{})
dict2[k]['name'] = v['name']
dict2[k]['phone'] = v['phone']
list1 = []
for k, v in dict2.items():
i = 0
for k1, v1 in dict1.items():
if v['name']== v1['name'] and v['phone'] == v1['phone'] and k1 != k:
list1.append(max(int(k),int(k1)))
for item in set(list1):
del dict1[str(item)]
print(len(dict1))
filename = 'data/镇海1.json'
with open(filename,'w') as fl:
json.dump(dict1, fl, ensure_ascii=False)
In [41]:
import json
import datetime
import csv
from datetime import date
filename = '../item.json'
item = {}
unit = {}
with open(filename,'r') as fl:
dict1 = json.load(fl)
for k,v in dict1.items():
item[k] = v
item['1']['en'] = 'lung'
item['2']['en'] = 'grip'
item['3']['en'] = 'flexion'
item['4']['en'] = 'jump'
item['5']['en'] = 'pushup'
item['6']['en'] = 'balance'
item['7']['en'] = 'reaction'
item['8']['en'] = 'step'
item['9']['en'] = 'situp'
item['10']['en'] = 'height'
item['11']['en'] = 'weight'
re_ta = {}
dict1 = {}
list1 = []
filename = 'data/镇海(合并).json'
with open(filename,'r') as fl:
dict1 = json.load(fl)
filename = 'data/places_result_20240922.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)
#f_item = ['lung','grip','flexion','jump','balance','reaction','step','situp']
#m_item = ['lung','grip','flexion','jump','pushup','balance','reaction','step']
for result in list1:
user = str(result[2])
rq = date.fromisoformat(result[6].replace('/','-'))
if user in dict1.keys():
l_xm = []
m_item = str(result[3])
re_ta.setdefault(user,{})
re_ta[user]['name'] = dict1[user]['name']
re_ta[user]['sex'] = dict1[user]['sex']
if dict1[user]['sex'] == '男':
l_xm = ['weight','height','lung','grip','flexion','jump','pushup','balance','reaction','step']
else:
l_xm = ['weight','height','lung','grip','flexion','jump','balance','reaction','step','situp']
re_ta[user]['unit'] = dict1[user]['unit']
#birth = date.fromisoformat(dict1[user]['birth'].replace('/','-'))
birth = date.fromisoformat(dict1[user]['birth'])
#nian = int(birth[0].strip())
#yue = int(birth[1].strip())
#ri = int(birth[2].strip())
#print(k,nian,yue,ri)
item_name = item[m_item]['en']
if item_name in l_xm:
days = (rq-birth).days
re_ta[user]['age'] = int(days/365)
re_ta[user]['month'] = int(days/365*12)
re_ta[user]['rq'] = result[6]
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, ensure_ascii=False)
print(len(re_ta))1365 1365
In [42]:
import json
import time
filename = '../item.json'
item = {}
unit = {}
with open(filename,'r') as fl:
dict3 = json.load(fl)
for k,v in dict3.items():
item[k] = v
item['1']['en'] = 'lung'
item['2']['en'] = 'grip'
item['3']['en'] = 'flexion'
item['4']['en'] = 'jump'
item['5']['en'] = 'pushup'
item['6']['en'] = 'balance'
item['7']['en'] = 'reaction'
item['8']['en'] = 'step'
item['9']['en'] = 'situp'
item['10']['en'] = 'height'
item['11']['en'] = 'weight'
filename = 'data/体质检测标准 (1).json'
with open(filename,'r') as fl:
dict1 = json.load(fl)
def cal_score(data1):
#data = {'name':'张三','sex':'M','age':37,'item':'StepExperiment','result':46}
person = dict1['person']
criteria = dict1['criteria']
if data1['age'] >59:
data1['age'] = 59
if data1['age'] <20:
data1['age'] = 20
info = data1['sex']+str(data1['age'])
bz = person[info]
mx = criteria[bz][data1['item']]
result = data1['result']
if data1['item'] == 'reaction':
for bz1 in mx:
if result > bz1:
#print(bz1)
score = mx.index(bz1,0)
break
else:
score = 5
else:
for bz1 in mx:
if result < bz1:
#print(bz1)
score = mx.index(bz1,0)
break
else:
score = 5
return(score)
filename = 'data/体质检测标准_BMI.json'
with open(filename,'r') as fl:
dict4 = json.load(fl)
def cal_bmi(data1):
# data = {'name':'张三','sex':'M','age':37,'item':'HeightWeight','result':'177.7,97.0'}
person = dict4['person']
criteria = dict4['criteria']
if data1['age'] > 59:
data1['age'] = 59
if data1['age'] <20:
data1['age'] = 20
info = data1['sex']+str(data1['age'])
bz = person[info]
#print(bz)
result = data1['result']
#print(data1['code'],result)
height = int(float(result.split(',')[0]))
weight = float(result.split(',')[1])
if str(height) not in criteria[bz]:
score = 1
else:
mx = criteria[bz][str(height)]
if weight < mx[0]:
score = 1
elif weight < mx[1]:
score = 3
elif weight < mx[2]:
score = 5
elif weight <= mx[3]:
score = 3
elif weight > mx[3]:
score = 1
return score
#list_item = ['lung','grip','flexion','jump','pushup','balance','reaction','step','situp','height','weight']
list_item = ['lung','grip','flexion','jump','pushup','balance','reaction','step','situp']
filename = 'data/result_镇海(合并).json'
with open(filename,'r') as fl:
dict2 = json.load(fl)
for k, v in dict2.items():
#print(k)
if v['sex'] == '男':
sex = 'M'
else:
sex = 'F'
if 'height' in v.keys() and 'weight' in v.keys():
bmi_data = v['height']['成绩'].split()[0]+','+ v['weight']['成绩'].split()[0]
data1 = {'code':k,'sex':sex,'age':v['age'],'item':'HeightWeight','result':bmi_data}
dict2[k]['bmi'] = {}
dict2[k]['bmi']['成绩'] = bmi_data
dict2[k]['bmi']['score'] = cal_bmi(data1)
for item_en in list_item:
if item_en in v.keys():
data1 = {'code':k,'sex':sex,'age':v['age'],'item':item_en,'result':float(v[item_en]['成绩'].split()[0])}
dict2[k][item_en]['score'] = cal_score(data1)
#print(k,v[item_en]['成绩'],cal_score(data1))
filename = f'data/result_镇海(合并).json'
with open(filename,'w') as fl:
json.dump(dict2,fl , ensure_ascii=False)
print('ok!') ok!
In [ ]:
import json
import openpyxl
items = ['lung','grip','flexion','jump','pushup','situp','balance','reaction','step']
bmi = ['height','weight']
title = ['编号','姓名','性别','单位/部门','身高','体重','bmi','肺活量','','握力','','坐位体前屈','','纵跳','','俯卧撑','','一分钟仰卧起坐','','单脚站立','','选择反应时','','台阶指数']
filename = 'data/result_镇海(合并).json'
with open(filename,'r') as fl:
dict1 = json.load(fl)
list1 = []
for k, v in dict1.items(): #print(k,dict2[str(k)]['name'])
list2 = []
list2.append(str(k).rjust(5,'0'))
list2.append(dict1[k]['name'])
list2.append(dict1[k]['sex'])
list2.append(dict1[k]['unit'])
i = 0
if 'bmi' in dict1[k].keys():
list2.append(dict1[k]['height']['成绩'])
list2.append(dict1[k]['weight']['成绩'])
list2.append(dict1[k]['bmi']['score'])
i+=1
else:
list2.append('')
list2.append('')
list2.append('')
for item in items:
if item in dict1[k].keys():
list2.append(dict1[k][item]['成绩'])
list2.append(dict1[k][item]['score'])
i+=1
elif item =='name':
list2.append(dict1[k][item])
else:
list2.append('')
list2.append('')
if i>2:
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)
print('ok') In [ ]:
import requests
import json
import openpyxl
headers = {
"Content-Type": "application/json; charset=UTF-8"
}
filename = 'data/result_镇海(合并).json'
with open(filename,'r') as fl:
dict1 = json.load(fl)
list1 = []
file_path ='./镇海石化/'
list_item = ['lung','grip','flexion','jump','pushup','balance','reaction','step','situp','bmi']
i=0
list2 = []
for k, v in dict1.items():
list1 = []
mydata = {}
id = str(k).rjust(4,"0")
mydata['path'] = file_path+id+'-'+ v['name']+'.pdf'
mydata['title'] = '中国石化镇海炼化公司'
mydata['subtitle'] = v['unit']
mydata['id'] = id
mydata['name'] = v['name']
if v['sex'] == '男':
mydata['gender'] = 'male'
else:
mydata['gender'] = 'female'
mydata['month'] = v['month']
mydata['fits'] = {}
survey_list = ['tcm','psy','spine']
for item in survey_list:
if item in v.keys():
mydata.setdefault('surveys',{})
mydata['surveys'][item] = v[item]
#mydata['fits'] = {}
for item in list_item:
if item in v.keys():
mydata.setdefault('fits',{})
if item in ['lung','pushup','step','situp']:
mark = v[item]['成绩'].split()[0].split('.')[0]
else:
mark = v[item]['成绩'].split()[0]
mydata['fits'][item] = {'mark':mark,'score':v[item]['score']}
#if len(mydata['fits']) >2 or len(mydata['surveys']) >0:
if len(mydata['fits']) >2 :
list1.append(mydata)
list2.append([k,v['name']])
i+=1
x = requests.post('http://localhost:3003', data = json.dumps(list1), headers=headers)
#print(id,v['name'],x.text)
#print(mydata)
#x.close()
print(i)In [ ]:
import json
import glob
from pathlib import Path
import openpyxl
filename = 'data/镇海.json'
with open(filename,'r') as fl:
dict1 = json.load(fl)
fi_path = '/home/songyi/python/mycrm/flask/pdf/files/345321'
fls = glob.glob(f'{fi_path}/*.pdf')
dict2 = {}
for fn in fls:
fi_name =Path(fn).stem.split('-')[0]
#fi_name =Path(fn).stem
code = int(fi_name)
dict2[str(code)] = dict1[str(code)]
filename = 'data/镇海体测人员.json'
with open(filename,'w') as fl:
json.dump(dict2,fl , ensure_ascii=False)
print(len(dict2))
list1 = []
for k, v in dict2.items():
list2 = []
if 'gh' in v.keys():
gh = v['gh']
else:
gh = ''
if 'phone' in v.keys():
phone = v['phone']
else:
phone = ''
list2 = [k,v['name'],v['sex'],v['birth'],v['unit'],gh,phone]
list1.append(list2)
#print(list1)
filename = 'data/镇海参加测试人员名单.xlsx'
title = ['序号','员工编号','姓名','部门']
wb = openpyxl.Workbook()
sheet = wb.active
sheet.append(title)
for row in list1:
sheet.append(row)
wb.save(filename)In [ ]:
import json
import glob
from pathlib import Path
import openpyxl
filename = 'data/镇海体测人员.json'
with open(filename,'r') as fl:
dict1 = json.load(fl)
wb = openpyxl.load_workbook('data/镇海炼化参加测试人员名单(分析用).xlsx')
sheet = wb.active
for n in range(2, sheet.max_row+1):
if sheet.cell(n, 12).value is not None:
code = int(sheet.cell(n, 1).value)
if sheet.cell(n, 12).value is not None:
dict1[str(code)]['gwlb'] = sheet.cell(n, 12).value
dict1[str(code)]['gwxl'] = sheet.cell(n, 9).value
dict1[str(code)]['gzz'] = sheet.cell(n, 11).value
with open(filename, 'w') as fl:
json.dump(dict1, fl, ensure_ascii=False)
print('ok!')
In [ ]:
import openpyxl
import json
from datetime import date
wb = openpyxl.load_workbook('data/镇海炼化参加测试人员名单.xlsx')
sheet = wb.active
# sheets = wb.sheetnames
person = {}
for n in range(2, sheet.max_row+1):
code = int(sheet.cell(n, 1).value)
person.setdefault(code, {})
dict1 = {}
dict1['name'] = sheet.cell(n, 2).value
dict1['sex'] = sheet.cell(n, 3).value
dict1['unit'] = sheet.cell(n, 5).value
if sheet.cell(n, 6).value is not None:
dict1['gh'] = sheet.cell(n, 6).value
dict1['birth'] = str(sheet.cell(n, 4).value).replace('/','-').split(' ')[0]
if sheet.cell(n, 7).value is not None:
dict1['phone'] = str(sheet.cell(n,7).value)
if len(str(sheet.cell(n,7).value))<11:
print(code,sheet.cell(n, 2).value)
person[code] = dict1
filename = 'data/镇海炼化参加测试人员.json'
with open(filename, 'w') as fl:
json.dump(person, fl, ensure_ascii=False)
print(len(person))In [ ]:
import openpyxl
import os,sys,shutil
import json
import math
import glob
import random
from pathlib import Path
import pymongo
myclient = pymongo.MongoClient('mongodb://localhost:27017/')
mydb = myclient["baogao"]
mycol = mydb["pdf"]
place_id = 345321
fi_path = '/home/songyi/python/mycrm/flask/pdf/files'
fls = glob.glob(f'{fi_path}/{str(place_id)}/*.pdf')
filename = 'data/镇海炼化参加测试人员.json'
with open(filename,'r') as fl:
dict1 = json.load(fl)
for fn in fls:
dict2 = {}
fi_name =Path(fn).stem.split('-')[0]
#fi_name =Path(fn).stem
code = int(fi_name)
dxm = dict1[str(code)]['gh']
dict2 = {'place_id':place_id,'code':dxm,'fn':Path(fn).name}
list2.append(dict2)
i +=1
x = mycol.insert_many(list2)
print('ok') In [ ]:
import json
filename = 'data/镇海炼化参加测试人员.json'
with open(filename,'r') as fl:
dict1 = json.load(fl)
list1 = []
list2 = []
set1 = set()
for k, v in dict1.items():
if 'gh' in v.keys():
gh = v['gh']
if gh not in list1:
list1.append(v['gh'])
else:
list2.append(gh)
print(list2)In [ ]:
import os,sys,shutil
import json
import glob
from pathlib import Path
fi_path = '/home/songyi/pdf-typescript/镇海石化'
new_path = 'file/镇海石化'
old = []
dict2 = {}
filename = 'data/镇海炼化参加测试人员.json'
with open(filename,'r') as fl:
dict1 = json.load(fl)
fls = glob.glob(f'{fi_path}/*.pdf')
for fn in fls:
fi_name =Path(fn).stem.split('-')[0]
code = int(fi_name)
unit_path = Path(new_path,dict1[str(code)]['unit'])
unit_path.mkdir(parents = True, exist_ok = True)
n_name = Path(unit_path,Path(fn).stem+'.pdf')
if not os.path.exists(n_name):
shutil.copyfile(fn,n_name)In [ ]:
import os,sys,shutil
import json
import glob
from pathlib import Path
import openpyxl
fi_path = '/home/songyi/pdf-typescript/镇海石化'
filename = 'data/镇海炼化参加测试人员.json'
with open(filename,'r') as fl:
dict1 = json.load(fl)
fls = glob.glob(f'{fi_path}/*.pdf')
list1 = []
title = ['测试编号','姓名','性别','部门']
for fn in fls:
list2 = []
fi_name =Path(fn).stem.split('-')[0]
code = int(fi_name)
sex = dict1[str(code)]['sex']
unit = dict1[str(code)]['unit']
list2 = [fi_name,Path(fn).stem.split('-')[1],sex,unit]
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)
print('ok')In [43]:
import json
import openpyxl
filename = 'data/result_镇海(合并).json'
with open(filename,'r',encoding = 'utf-8') as fl:
dict1 = json.load(fl)
#items = ['身高','体重','肺活量','握力','坐位体前屈','纵跳','俯卧撑','一分钟仰卧起坐','单脚站立','选择反应时','台阶指数']
items = {}
items['lung'] = '肺活量'
items['grip'] ='握力'
items['flexion'] ='坐位体前屈'
items['jump'] ='纵跳'
items['pushup'] ='俯卧撑'
items['balance'] ='单脚站立'
items['reaction'] ='选择反应时'
items['step'] ='台阶指数'
items['situp'] ='一分钟仰卧起坐'
items['bmi'] ='BMI'
list1 = []
#fiie_path ='./138/'
list_item = ['lung','grip','flexion','jump','pushup','balance','reaction','step','situp','bmi']
i=1
list2 = []
dict2 = {}
for k, v in dict1.items():
list1 = []
mydata = {}
id = str(k).rjust(8,"0")
mydata['unit'] = v['unit']
mydata['name'] = v['name']
mydata['sex'] = v['sex']
mydata['month'] = v['month']
age = int(v['month']/12)
if age <20:
mydata['age'] = 20
else:
mydata['age'] = int(v['month']/12)
mydata['fits'] = {}
score = 0
for item in list_item:
if item in v.keys():
if item in ['lung','pushup','step','situp']:
mark = v[item]['成绩'].split()[0].split('.')[0]
else:
mark = v[item]['成绩'].split()[0]
mydata['fits'][items[item]] = {'mark':mark,'score':v[item]['score']}
score = score + v[item]['score']
mydata['score'] = round(score/len(mydata['fits']),2)
if len(mydata['fits']) >2:
dict2[str(k)] = mydata
filename = f'data/data_镇海(合并).json'
with open(filename,'w') as fl:
json.dump(dict2,fl , ensure_ascii=False)
print('ok!') ok!
In [ ]:
import json
import openpyxl
filename = 'data/result_镇海2.json'
with open(filename,'r',encoding = 'utf-8') as fl:
dict1 = json.load(fl)
filename = 'data/镇海体测人员.json'
with open(filename,'r',encoding = 'utf-8') as fl:
dict3 = json.load(fl)
#items = ['身高','体重','肺活量','握力','坐位体前屈','纵跳','俯卧撑','一分钟仰卧起坐','单脚站立','选择反应时','台阶指数']
items = {}
items['lung'] = '肺活量'
items['grip'] ='握力'
items['flexion'] ='坐位体前屈'
items['jump'] ='纵跳'
items['pushup'] ='俯卧撑'
items['balance'] ='单脚站立'
items['reaction'] ='选择反应时'
items['step'] ='台阶指数'
items['situp'] ='一分钟仰卧起坐'
items['bmi'] ='BMI'
list1 = []
#fiie_path ='./138/'
list_item = ['lung','grip','flexion','jump','pushup','balance','reaction','step','situp','bmi']
i=1
list2 = []
dict2 = {}
for k, v in dict1.items():
if dict3[k]['gzz'] == '倒班':
list1 = []
mydata = {}
id = str(k).rjust(8,"0")
mydata['unit'] = v['unit']
mydata['name'] = v['name']
mydata['sex'] = v['sex']
mydata['month'] = v['month']
age = int(v['month']/12)
if age <20:
mydata['age'] = 20
else:
mydata['age'] = int(v['month']/12)
mydata['fits'] = {}
score = 0
for item in list_item:
if item in v.keys():
if item in ['lung','pushup','step','situp']:
mark = v[item]['成绩'].split()[0].split('.')[0]
else:
mark = v[item]['成绩'].split()[0]
mydata['fits'][items[item]] = {'mark':mark,'score':v[item]['score']}
score = score + v[item]['score']
mydata['score'] = round(score/len(mydata['fits']),2)
if len(mydata['fits']) >2:
dict2[str(k)] = mydata
filename = f'data/data_镇海_倒班.json'
with open(filename,'w') as fl:
json.dump(dict2,fl , ensure_ascii=False)
print(len(dict2)) In [44]:
nld = [[20,24],[25,29],[30,34],[35,39],[40,44],[45,49],[50,54],[55,80]]
filename = 'data/data_镇海(合并).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/(f+m),4)}分,总体:{(f+m)}人')平均成绩:3.1739分,男性:1074人 平均成绩:3.3303分,女性:291人 平均成绩:3.2072分,总体:1365人
In [45]:
import json
items = ['体重','肺活量','握力','坐位体前屈','纵跳','俯卧撑','一分钟仰卧起坐','单脚站立','选择反应时','台阶指数']
#filename = 'data/data_长炼医院.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}人')
print(len(dict1))
with open(filename,'w') as fl:
json.dump(dict1, fl)
print('ok')0~255分人数:134人,男性:118人,女性:16人 256~332分人数:585人,男性:472人,女性:113人 333~367分人数:431人,男性:333人,女性:98人 368~500分人数:215人,男性:151人,女性:64人 1365 ok
In [46]:
nld = [[20,24],[25,29],[30,34],[35,39],[40,44],[45,49],[50,54],[55,80]]
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 {'良好': 29, '合格': 60, '优秀': 22, '不合格': 8}
25-29 {'良好': 24, '合格': 32, '不合格': 3, '优秀': 14}
30-34 {'不合格': 3, '优秀': 6, '合格': 11, '良好': 15}
35-39 {'合格': 5, '不合格': 2, '良好': 13, '优秀': 6}
40-44 {'良好': 6, '合格': 1, '优秀': 1, '不合格': 0}
45-49 {'良好': 8, '合格': 4, '优秀': 12, '不合格': 0}
50-54 {'良好': 3, '不合格': 0, '合格': 0, '优秀': 2}
55-80 {'优秀': 1, '合格': 0, '良好': 0, '不合格': 0}
In [47]:
nld = [[20,24],[25,29],[30,34],[35,39],[40,44],[45,49],[50,54],[55,80]]
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 {'良好': 97, '合格': 177, '优秀': 38, '不合格': 53}
25-29 {'良好': 57, '合格': 97, '不合格': 21, '优秀': 21}
30-34 {'不合格': 15, '优秀': 13, '合格': 43, '良好': 29}
35-39 {'合格': 57, '不合格': 11, '良好': 45, '优秀': 22}
40-44 {'良好': 27, '合格': 18, '优秀': 12, '不合格': 2}
45-49 {'良好': 26, '合格': 28, '优秀': 17, '不合格': 1}
50-54 {'良好': 33, '不合格': 10, '合格': 29, '优秀': 16}
55-80 {'优秀': 12, '合格': 23, '良好': 19, '不合格': 5}
In [48]:
nld = [[16,24],[25,29],[30,34],[35,39],[40,44],[45,49],[50,54],[55,69]]
with open(filename,'r') as fl:
dict1 = json.load(fl)
for item in nld:
di = item[0]
gao = item[1]
i = 0
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
if i ==0:
print(f'{di}~{gao}岁平均成绩:0分,人数:0人,男性:{m}人')
else:
print(f'{di}~{gao}岁平均成绩:{round(score/i,2)}分,人数:{i}人,男性:{m}人')16~24岁平均成绩:3.11分,人数:484人,男性:365人 25~29岁平均成绩:3.16分,人数:269人,男性:196人 30~34岁平均成绩:3.15分,人数:135人,男性:100人 35~39岁平均成绩:3.3分,人数:161人,男性:135人 40~44岁平均成绩:3.39分,人数:67人,男性:59人 45~49岁平均成绩:3.48分,人数:96人,男性:72人 50~54岁平均成绩:3.29分,人数:93人,男性:88人 55~69岁平均成绩:3.27分,人数:60人,男性:59人
In [49]:
import json
nld = [[20,24],[25,29],[30,34],[35,39],[40,44],[45,49],[50,54],[55,80]]
with open(filename,'r') as fl:
dict1 = json.load(fl)
for item in nld:
di = item[0]
gao = item[1]
i = 0
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
if i ==0:
print(f'{di}~{gao}岁平均成绩:0分,人数:{i}人')
else:
print(f'{di}~{gao}岁平均成绩:{round(score/i,2)}分,人数:{i}人')20~24岁平均成绩:3.08分,人数:365人 25~29岁平均成绩:3.1分,人数:196人 30~34岁平均成绩:3.1分,人数:100人 35~39岁平均成绩:3.27分,人数:135人 40~44岁平均成绩:3.39分,人数:59人 45~49岁平均成绩:3.4分,人数:72人 50~54岁平均成绩:3.27分,人数:88人 55~80岁平均成绩:3.25分,人数:59人
In [50]:
nld = [[20,24],[25,29],[30,34],[35,39],[40,44],[45,49],[50,54],[55,80]]
with open(filename,'r') as fl:
dict1 = json.load(fl)
for item in nld:
di = item[0]
gao = item[1]
i = 0
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
if i ==0:
print(f'{di}~{gao}岁平均成绩:0分,人数:{i}人')
else:
print(f'{di}~{gao}岁平均成绩:{round(score/i,2)}分,人数:{i}人')20~24岁平均成绩:3.21分,人数:119人 25~29岁平均成绩:3.32分,人数:73人 30~34岁平均成绩:3.32分,人数:35人 35~39岁平均成绩:3.44分,人数:26人 40~44岁平均成绩:3.4分,人数:8人 45~49岁平均成绩:3.73分,人数:24人 50~54岁平均成绩:3.71分,人数:5人 55~80岁平均成绩:4.0分,人数:1人
In [51]:
with open(filename,'r') as fl:
dict1 = json.load(fl)
items = ['BMI','肺活量','握力','坐位体前屈','纵跳','俯卧撑','一分钟仰卧起坐','单脚站立','选择反应时','台阶指数']
for item in items:
score = 0
n = 0
for k, v in dict1.items():
if item in v['fits'].keys():
n = n + 1
score =score + int(v['fits'][item]['score'])
print(item,round(score/n,2),n)BMI 4.0 1364 肺活量 3.52 1364 握力 3.25 1361 坐位体前屈 2.93 1346 纵跳 3.4 1316 俯卧撑 3.65 1047 一分钟仰卧起坐 4.27 240 单脚站立 2.6 1356 选择反应时 2.88 1317 台阶指数 2.5 1286
In [52]:
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
if n>0:
print(item,round(score/n,2),n)
else:
print(item,0,n)采购中心 3.39 20 炼油三部 3.2 30 烯烃一部 3.21 156 炼油五部 3.25 73 公用工程二部 3.26 72 合成材料部 3.12 55 质管中心 3.24 56 储运一部 3.1 82 氢能制造部 3.18 59 电气中心 3.14 45 公用工程一部 3.12 81 仪表和计量中心 3.29 81 港储部 3.13 36 炼油二部 3.28 60 消防支队 3.35 25 烯烃二部 3.03 42 炼油一部 3.29 42 事务中心 3.17 35 公司机关 3.26 113 化学制品部 3.31 43 项目管理部 3.38 19 新材料研究院 3.31 15 炼油四部 3.08 27 油库中心 3.22 25 炼油六部 3.08 34 储运二部 3.12 13 炼油七部 3.25 26
In [54]:
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'] and v['sex'] == '男':
score = score + v['score']
n = n +1
if n>0:
print(item,round(score/n,2),n)
else:
print(item,0,n)采购中心 3.22 12 炼油三部 3.09 23 烯烃一部 3.2 128 炼油五部 3.3 56 公用工程二部 3.24 57 合成材料部 3.05 44 质管中心 3.19 43 储运一部 3.06 67 氢能制造部 3.15 46 电气中心 3.13 36 公用工程一部 3.1 63 仪表和计量中心 3.23 64 港储部 3.1 28 炼油二部 3.24 49 消防支队 3.4 21 烯烃二部 2.98 35 炼油一部 3.26 36 事务中心 3.06 28 公司机关 3.22 87 化学制品部 3.26 34 项目管理部 3.31 9 新材料研究院 3.29 12 炼油四部 3.06 23 油库中心 3.19 18 炼油六部 3.08 27 储运二部 3.06 11 炼油七部 3.21 17
In [58]:
import json
items = ['BMI','肺活量','握力','坐位体前屈','纵跳','俯卧撑','一分钟仰卧起坐','单脚站立','选择反应时','台阶指数']
filename = 'data/data_镇海(合并).json'
with open(filename,'r') as fl:
dict1 = json.load(fl)
filename = 'data/镇海(合并).json'
with open(filename,'r') as fl:
dict2 = json.load(fl)
dict3 = {}
for k, v in dict1.items():
unit = v['unit']
dict3.setdefault(unit,{})
for item in items:
dict3[unit].setdefault(item,{})
dict3[unit][item].setdefault('score',0)
dict3[unit][item].setdefault('count',0)
for k1,v1 in v['fits'].items():
if k1 in items:
dict3[unit][k1]['score']+=v1['score']
dict3[unit][k1]['count']+=1
for k, v in dict3.items():
print(k)
for k1, v1 in v.items():
print(k1,v1['score'],v1['count'])采购中心 BMI 86 20 肺活量 72 20 握力 59 20 坐位体前屈 63 20 纵跳 71 20 俯卧撑 47 12 一分钟仰卧起坐 35 8 单脚站立 47 20 选择反应时 68 20 台阶指数 62 20 炼油三部 BMI 116 30 肺活量 99 30 握力 91 30 坐位体前屈 84 30 纵跳 92 29 俯卧撑 92 22 一分钟仰卧起坐 29 7 单脚站立 78 30 选择反应时 85 29 台阶指数 86 29 烯烃一部 BMI 584 156 肺活量 547 156 握力 517 156 坐位体前屈 461 153 纵跳 541 147 俯卧撑 454 123 一分钟仰卧起坐 84 21 单脚站立 401 156 选择反应时 430 151 台阶指数 363 145 炼油五部 BMI 297 73 肺活量 261 73 握力 240 73 坐位体前屈 208 72 纵跳 265 72 俯卧撑 206 56 一分钟仰卧起坐 48 12 单脚站立 184 73 选择反应时 210 69 台阶指数 173 69 公用工程二部 BMI 296 72 肺活量 238 72 握力 243 72 坐位体前屈 212 71 纵跳 226 69 俯卧撑 204 55 一分钟仰卧起坐 54 12 单脚站立 189 72 选择反应时 206 68 台阶指数 191 68 合成材料部 BMI 217 55 肺活量 186 55 握力 178 53 坐位体前屈 149 55 纵跳 180 55 俯卧撑 164 44 一分钟仰卧起坐 43 10 单脚站立 137 55 选择反应时 146 54 台阶指数 129 55 质管中心 BMI 248 56 肺活量 197 56 握力 177 56 坐位体前屈 149 55 纵跳 172 52 俯卧撑 141 39 一分钟仰卧起坐 49 11 单脚站立 136 56 选择反应时 151 50 台阶指数 141 51 储运一部 BMI 324 82 肺活量 278 82 握力 263 82 坐位体前屈 219 80 纵跳 239 78 俯卧撑 218 64 一分钟仰卧起坐 45 10 单脚站立 201 81 选择反应时 227 81 台阶指数 209 78 氢能制造部 BMI 231 59 肺活量 214 59 握力 190 59 坐位体前屈 180 59 纵跳 188 58 俯卧撑 160 45 一分钟仰卧起坐 52 13 单脚站立 160 59 选择反应时 145 55 台阶指数 147 58 电气中心 BMI 185 45 肺活量 158 44 握力 137 45 坐位体前屈 132 44 纵跳 130 42 俯卧撑 129 36 一分钟仰卧起坐 24 6 单脚站立 109 45 选择反应时 136 44 台阶指数 92 42 公用工程一部 BMI 307 81 肺活量 286 81 握力 268 81 坐位体前屈 226 80 纵跳 262 77 俯卧撑 223 63 一分钟仰卧起坐 64 16 单脚站立 194 81 选择反应时 211 77 台阶指数 173 73 仪表和计量中心 BMI 323 81 肺活量 302 81 握力 273 81 坐位体前屈 242 79 纵跳 302 81 俯卧撑 231 63 一分钟仰卧起坐 51 12 单脚站立 221 81 选择反应时 230 79 台阶指数 186 80 港储部 BMI 142 36 肺活量 133 36 握力 119 36 坐位体前屈 100 36 纵跳 114 36 俯卧撑 98 28 一分钟仰卧起坐 15 4 单脚站立 86 36 选择反应时 94 35 台阶指数 88 33 炼油二部 BMI 250 60 肺活量 211 60 握力 196 60 坐位体前屈 169 60 纵跳 203 57 俯卧撑 184 49 一分钟仰卧起坐 47 11 单脚站立 163 60 选择反应时 183 59 台阶指数 145 58 消防支队 BMI 99 25 肺活量 81 25 握力 87 25 坐位体前屈 76 25 纵跳 92 25 俯卧撑 87 20 一分钟仰卧起坐 14 3 单脚站立 70 25 选择反应时 69 25 台阶指数 72 25 烯烃二部 BMI 154 42 肺活量 149 42 握力 133 42 坐位体前屈 114 42 纵跳 132 41 俯卧撑 115 34 一分钟仰卧起坐 32 7 单脚站立 102 42 选择反应时 105 41 台阶指数 95 41 炼油一部 BMI 176 42 肺活量 140 42 握力 141 42 坐位体前屈 127 41 纵跳 129 37 俯卧撑 133 36 一分钟仰卧起坐 16 5 单脚站立 117 42 选择反应时 116 41 台阶指数 103 36 事务中心 BMI 149 35 肺活量 115 35 握力 103 35 坐位体前屈 106 34 纵跳 105 34 俯卧撑 83 27 一分钟仰卧起坐 30 6 单脚站立 99 34 选择反应时 100 33 台阶指数 72 30 公司机关 BMI 439 113 肺活量 405 113 握力 361 113 坐位体前屈 335 112 纵跳 394 111 俯卧撑 332 86 一分钟仰卧起坐 88 19 单脚站立 297 107 选择反应时 322 107 台阶指数 232 104 化学制品部 BMI 171 43 肺活量 158 43 握力 149 43 坐位体前屈 132 42 纵跳 150 42 俯卧撑 131 34 一分钟仰卧起坐 32 7 单脚站立 104 43 选择反应时 116 42 台阶指数 114 41 项目管理部 BMI 85 19 肺活量 68 19 握力 57 19 坐位体前屈 60 19 纵跳 57 18 俯卧撑 29 7 一分钟仰卧起坐 44 10 单脚站立 57 18 选择反应时 59 19 台阶指数 46 18 新材料研究院 BMI 61 15 肺活量 56 15 握力 47 15 坐位体前屈 48 15 纵跳 56 15 俯卧撑 39 12 一分钟仰卧起坐 14 3 单脚站立 45 15 选择反应时 43 15 台阶指数 37 15 炼油四部 BMI 103 27 肺活量 83 27 握力 86 27 坐位体前屈 75 27 纵跳 77 27 俯卧撑 83 23 一分钟仰卧起坐 12 3 单脚站立 78 27 选择反应时 84 27 台阶指数 61 26 油库中心 BMI 113 25 肺活量 90 25 握力 67 23 坐位体前屈 73 25 纵跳 66 23 俯卧撑 54 15 一分钟仰卧起坐 32 7 单脚站立 70 25 选择反应时 71 24 台阶指数 50 21 炼油六部 BMI 139 33 肺活量 118 34 握力 109 34 坐位体前屈 93 33 纵跳 109 32 俯卧撑 93 27 一分钟仰卧起坐 29 7 单脚站立 78 34 选择反应时 86 33 台阶指数 67 32 储运二部 BMI 45 13 肺活量 49 13 握力 45 13 坐位体前屈 39 12 纵跳 41 13 俯卧撑 37 11 一分钟仰卧起坐 8 2 单脚站立 33 13 选择反应时 35 13 台阶指数 29 13 炼油七部 BMI 112 26 肺活量 102 26 握力 92 26 坐位体前屈 75 25 纵跳 82 25 俯卧撑 59 16 一分钟仰卧起坐 33 8 单脚站立 68 26 选择反应时 71 26 台阶指数 52 25
In [57]:
import json
items = ['优秀','良好','合格','不合格']
filename = 'data/data_镇海(合并).json'
with open(filename,'r') as fl:
dict1 = json.load(fl)
dict3 = {}
for k, v in dict1.items():
unit = v['unit']
dict3.setdefault(unit,{})
for item in items:
dict3[unit].setdefault(item,0)
for k, v in dict1.items():
unit = v['unit']
#dict3.setdefault(unit,{})
#for item in items:
#dict3[unit].setdefault(v['level'],0)
dict3[unit][v['level']] +=1
for k, v in dict3.items():
print(k,v['优秀'],v['良好'],v['合格'],v['不合格'])采购中心 5 7 8 0 炼油三部 3 9 18 0 烯烃一部 31 36 74 15 炼油五部 15 22 26 10 公用工程二部 10 29 28 5 合成材料部 3 20 25 7 质管中心 8 24 17 7 储运一部 8 23 38 13 氢能制造部 10 16 27 6 电气中心 1 20 21 3 公用工程一部 12 22 34 13 仪表和计量中心 18 25 32 6 港储部 6 5 24 1 炼油二部 7 25 26 2 消防支队 6 10 7 2 烯烃二部 7 10 15 10 炼油一部 7 12 22 1 事务中心 6 10 14 5 公司机关 22 38 42 11 化学制品部 9 13 19 2 项目管理部 3 8 8 0 新材料研究院 2 8 5 0 炼油四部 3 6 14 4 油库中心 4 11 7 3 炼油六部 3 9 17 5 储运二部 1 4 7 1 炼油七部 5 9 10 2
In [ ]: