24 KiB
24 KiB
In [ ]:
import json
filename = 'data/data_世纪花园.json'
with open(filename,'r') as fl:
list1 = json.load(fl)
dict1 = {}
for item in list1:
id = int(item['id'])
dict1.setdefault(str(id),{})
dict1[str(id)]['name'] = item['name']
dict1[str(id)]['sex'] = item['gender']
dict1[str(id)]['birth'] = item['birth']
dict1[str(id)]['phone'] = item['phone']
if item['unit'] == '':
dict1[str(id)]['unit'] = '未确定'
else:
dict1[str(id)]['unit'] = item['unit']
filename = 'data/世纪花园人员信息.json'
with open(filename, 'w') as fl:
json.dump(dict1, fl, ensure_ascii=False)
print('ok')In [4]:
import openpyxl
import json
wb = openpyxl.load_workbook('data/世纪花园人员信息.xlsx')
sheet = wb.active
# sheets = wb.sheetnames
person = {}
for n in range(1, sheet.max_row+1):
code = int(sheet.cell(n, 1).value)
person.setdefault(code, {})
dict1 = {}
dict1['name'] = sheet.cell(n, 2).value
dict1['unit'] = sheet.cell(n, 6).value
dict1['sex'] = sheet.cell(n, 3).value
dict1['birth'] = str(sheet.cell(n,4).value).split(' ')[0]
if sheet.cell(n,5).value is not None:
dict1['phone'] = str(sheet.cell(n,5).value)
person[code] = dict1
filename = 'data/世纪花园人员信息.json'
with open(filename, 'w') as fl:
json.dump(person, fl, ensure_ascii=False)
print('ok')ok
In [20]:
import json
filename = 'data/世纪花园基础数据240808.json'
with open(filename,'r') as fl:
dict1 = json.load(fl)
dict2 = {}
for k, v in dict1.items():
dict1[k]['phone'] = str(k)
with open(filename,'w') as fl:
json.dump(dict1, fl, ensure_ascii=False)
print(len(dict1))12
In [ ]:
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_20231027.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('/','-'))
#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))In [ ]:
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!') In [ ]:
In [ ]:
import openpyxl
import json
filename = 'data/世纪花园人员信息.json'
with open(filename,'r') as fl:
dict2 = json.load(fl)
wb = openpyxl.load_workbook('data/世纪花园问卷.xlsx')
sheet = wb.active
# sheets = wb.sheetnames
dict1 = {}
dict3 = {}
sheet = wb.active
data1 =list(sheet.values)
list_bh = data1[0][1:]
#print(list_bh)
del data1[0]
for i in range(1,len(list_bh)+1):
list2 = []
for item in data1:
list2.append(item[i])
dict1[list_bh[i-1]] = list2
filename = 'data/result_世纪花园.json'
with open(filename,'r') as fl:
dict2 = json.load(fl)
for k,v in dict1.items():
if str(k) in dict2.keys():
if v[0] is not None:
psy_yangmiao_old = v[:30]
#dict2[str(k)]['psy_yangmiao_old'] = psy_yangmiao_old
if v[30] is not None:
tcm = v[30:90]
#print(tcm,len(tcm))
if v[90] is not None:
spine = v[90:]
xx22 = spine[21]
xx23 = spine[22]
spine[21] = xx23
spine[22] = xx22
dict2[str(k)]['psy'] = psy_yangmiao_old
dict2[str(k)]['tcm'] = tcm
dict2[str(k)]['spine'] = spine
filename = 'data/result_世纪花园.json'
with open(filename,'w') as fl:
json.dump(dict2, fl, ensure_ascii=False)
print('ok') In [ ]:
import json
import openpyxl
filename = 'data/世纪花园人员信息.json'
with open(filename,'r') as fl:
dict1 = json.load(fl)
list1 = []
for k, v in dict1.items():
id = str(k).rjust(5,"0")
name = v['name']
list1.append([id,name,v['sex'],v['sex'],v['birth'],v['phone'],v['unit']])
filename = 'data/世纪花园人员信息.xlsx'
wb = openpyxl.Workbook()
sheet = wb.active
for row in list1:
sheet.append(row)
wb.save(filename)In [ ]:
import json
import datetime
import csv
list1 = []
filename = 'data/Survey_20231027.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)
list3 = []
for item in list1:
phone = item[2]
content = json.loads(item[5])
name = content['name']
sex = content['gender']
birth = content['birth']
unit = content['unit']
list2 = [phone,name,sex,birth,unit]
list3.append(list2)
filename = 'data/世纪花园人员信息1.xlsx'
wb = openpyxl.Workbook()
sheet = wb.active
for row in list3:
sheet.append(row)
wb.save(filename)
In [16]:
import json
import datetime
import csv
list1 = []
filename = 'data/Survey_20240808.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)
list3 = []
dict1 = {}
bh = 1
for item in list1:
phone = item[1]
content = json.loads(item[5])
name = content['name']
sex = content['gender']
birth = content['birth']
unit = content['unit']
del content['name']
del content['gender']
del content['birth']
del content['unit']
for k, v in content.items():
if 'O' in k:
age = 'O'
psy =[]
for i in range(1,31):
m_key = 'q'+str(i)+'O'
psy.append(content[m_key])
if 'M' in k:
psy =[]
age = 'M'
for i in range(1,48):
m_key = 'q'+str(i)+'M'
psy.append(content[m_key])
if 'qv' in k:
spine =[]
for i in range(1,27):
m_key = 'qv'+str(i)
if m_key in content.keys():
spine.append(content[m_key])
else:
spine.append(0)
if 'v' in k:
tcm = []
for i in range(1,61):
m_key = 'q'+str(i)
if m_key in content.keys():
tcm.append(content[m_key])
else:
tcm.append(0)
dict1.setdefault(phone,{})
dict1[phone]['name'] = name
dict1[phone]['sex'] = sex
dict1[phone]['birth'] = birth
dict1[phone]['age'] = age
dict1[phone]['unit'] = unit
dict1[phone]['psy'] = psy
dict1[phone]['spine'] = spine
dict1[phone]['tcm'] = tcm
#list3.append(list2)
filename = 'data/世纪花园基础数据240808.json'
with open(filename,'w') as fl:
json.dump(dict1, fl, ensure_ascii=False)
print(len(dict1))12
In [ ]:
import openpyxl
import json
filename = 'data/世纪花园人员信息.json'
with open(filename,'r') as fl:
dict1 = json.load(fl)
list1 = []
list2 = []
for k, v in dict1.items():
list2.append(v['phone'])
print(list2)
filename = 'data/Survey_20231027.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)
phone = str(line[2])
if phone in list2:
print(phone)
In [ ]:
import openpyxl
import json
filename = 'data/世纪花园人员信息.json'
with open(filename,'r') as fl:
dict3 = json.load(fl)
wb = openpyxl.load_workbook('data/世纪花园问卷.xlsx')
sheet = wb.active
# sheets = wb.sheetnames
dict1 = {}
zy = [2,7,9,11,12,21,24]
no_xinli = [286]
sheet = wb.active
data1 =list(sheet.values)
list_bh = data1[0][1:]
#print(list_bh)
del data1[0]
for i in range(1,len(list_bh)+1):
list2 = []
for item in data1:
list2.append(item[i])
dict1[list_bh[i-1]] = list2
#print(dict1)
s = ''
for k,v in dict1.items():
if str(k) in dict3.keys():
if dict3[str(k)]['sex'] =='男':
sex = "m"
else:
sex = "f"
dict2 = {}
list_mx = []
list_mx.append(f'"Gender":"{sex}"')
list_mx.append(f'"Age":"O"')
dict2['surveyId'] = "merge1"
dict2['name'] = dict3[str(k)]['name']
dict2['code'] = str(k)
name = dict3[str(k)]['phone']
if k not in no_xinli:
for i in range(0,30):
list_mx.append(f'"q{i+1}O":{v[i]}')
for i in range(1,61):
if i not in zy:
list_mx.append(f'"q{i}":{v[29+i]}')
for i in range(1,27):
list_mx.append(f'"qv{i}":{v[89+i]}')
ss = ','.join(list_mx)
ss ='{'+ss+'}'
dict2['data'] = ss
sj = '2023-10-27 15:00:00'
s= s+f'(\'ptv_0533_sjhy\',\'{name}\',\'{ss}\',\'{sj}\'),'
#print(dict2)
print(s)In [ ]: