Files
jupyter/体测单位/世纪花园.ipynb
T
2023-10-27 07:46:09 +00:00

39 KiB

人员信息导入

In [7]:
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')
ok

获取人员测试成绩

In [9]:
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))
84
84

计算项目成绩

In [26]:
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 [ ]:

问卷信息导入

In [27]:
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')   
ok

生成报告人员信息

In [13]:
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 [23]:
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 [38]:
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)
['18610346996', '15689048244', '17865910365', '15966972231', '15953353009', '10002268211', '13906430187', '18553352007', '15092304241', '13953302959', '15966961587', '13964419753', '13563031324', '13869301368', '15964480260', '17616402467', '18253372927', '15169322152', '18653360448', '15954798900', '15953329509', '13561616627', '13581038337', '13287083771', '18553317009', '13287888080', '13953398130', '13665330312', '18353398071', '15854858198', '13280681081', '13583315663', '18653359308', '18053370113', '18953363875', '15153328391', '13853328246', '13606433819', '13389690177', '18560316978', '18560316897', '18653307232', '18853386200', '13953318999', '15376796462', '18253301688', '13853346368', '18560317186', '13969319707', '13792162471', '15589361996', '15315223331', '13869320577', '13792166751', '15065872512', '13969392534', '13573392557', '13589563291', '13573349783', '13953350485', '18678200603', '13589537205', '13589537205', '13853357150', '13969308397', '13706432240', '18560317061', '13964391029', '18953343833', '18905332691', '13054890607', '13082715936', '15053312268', '15963301381', '15550301285', '13306436916', '15553312972', '13280682857', '13070619391', '18678109571', '15965521907', '13280632498', '13964466366', '18853366997', '13789896882', '15589388169']
18610346996

问卷导出

In [40]:
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)
('ptv_0533_sjhy','13070619391','{"Gender":"f","Age":"O","q1O":4,"q2O":4,"q3O":2,"q4O":3,"q5O":1,"q6O":1,"q7O":1,"q8O":5,"q9O":2,"q10O":1,"q11O":1,"q12O":1,"q13O":4,"q14O":5,"q15O":5,"q16O":5,"q17O":5,"q18O":5,"q19O":4,"q20O":4,"q21O":5,"q22O":5,"q23O":5,"q24O":5,"q25O":2,"q26O":4,"q27O":2,"q28O":2,"q29O":4,"q30O":2,"q1":4,"q3":1,"q4":2,"q5":4,"q6":4,"q8":1,"q10":1,"q13":4,"q14":4,"q15":4,"q16":5,"q17":5,"q18":5,"q19":5,"q20":5,"q22":5,"q23":1,"q25":5,"q26":5,"q27":1,"q28":1,"q29":5,"q30":5,"q31":1,"q32":1,"q33":2,"q34":5,"q35":5,"q36":1,"q37":1,"q38":5,"q39":5,"q40":1,"q41":1,"q42":5,"q43":1,"q44":4,"q45":1,"q46":1,"q47":1,"q48":5,"q49":5,"q50":5,"q51":1,"q52":1,"q53":5,"q54":5,"q55":5,"q56":5,"q57":5,"q58":1,"q59":1,"q60":5,"qv1":1,"qv2":1,"qv3":1,"qv4":2,"qv5":1,"qv6":1,"qv7":2,"qv8":1,"qv9":2,"qv10":1,"qv11":1,"qv12":1,"qv13":2,"qv14":2,"qv15":1,"qv16":1,"qv17":1,"qv18":1,"qv19":1,"qv20":2,"qv21":1,"qv22":2,"qv23":2,"qv24":1,"qv25":1,"qv26":2}','2023-10-27 15:00:00'),('ptv_0533_sjhy','13280682857','{"Gender":"f","Age":"O","q1O":2,"q2O":2,"q3O":2,"q4O":1,"q5O":4,"q6O":4,"q7O":4,"q8O":4,"q9O":4,"q10O":1,"q11O":3,"q12O":5,"q13O":4,"q14O":4,"q15O":4,"q16O":5,"q17O":4,"q18O":4,"q19O":4,"q20O":3,"q21O":5,"q22O":5,"q23O":5,"q24O":5,"q25O":3,"q26O":4,"q27O":4,"q28O":4,"q29O":3,"q30O":4,"q1":4,"q3":1,"q4":3,"q5":3,"q6":4,"q8":2,"q10":1,"q13":3,"q14":1,"q15":2,"q16":4,"q17":3,"q18":4,"q19":1,"q20":1,"q22":2,"q23":2,"q25":1,"q26":1,"q27":1,"q28":3,"q29":1,"q30":1,"q31":3,"q32":1,"q33":1,"q34":1,"q35":4,"q36":3,"q37":1,"q38":2,"q39":5,"q40":1,"q41":1,"q42":1,"q43":1,"q44":3,"q45":1,"q46":1,"q47":1,"q48":1,"q49":2,"q50":1,"q51":1,"q52":1,"q53":1,"q54":2,"q55":1,"q56":1,"q57":1,"q58":1,"q59":1,"q60":1,"qv1":2,"qv2":2,"qv3":2,"qv4":1,"qv5":2,"qv6":2,"qv7":2,"qv8":2,"qv9":2,"qv10":2,"qv11":2,"qv12":2,"qv13":2,"qv14":2,"qv15":1,"qv16":1,"qv17":2,"qv18":1,"qv19":2,"qv20":2,"qv21":1,"qv22":2,"qv23":2,"qv24":2,"qv25":2,"qv26":2}','2023-10-27 15:00:00'),('ptv_0533_sjhy','13589537205','{"Gender":"f","Age":"O","q1O":3,"q2O":5,"q3O":2,"q4O":1,"q5O":5,"q6O":5,"q7O":5,"q8O":5,"q9O":5,"q10O":1,"q11O":4,"q12O":5,"q13O":5,"q14O":5,"q15O":5,"q16O":5,"q17O":5,"q18O":5,"q19O":5,"q20O":5,"q21O":5,"q22O":5,"q23O":5,"q24O":5,"q25O":4,"q26O":5,"q27O":4,"q28O":3,"q29O":5,"q30O":4,"q1":4,"q3":2,"q4":2,"q5":1,"q6":4,"q8":1,"q10":1,"q13":3,"q14":4,"q15":1,"q16":1,"q17":3,"q18":2,"q19":1,"q20":3,"q22":5,"q23":5,"q25":3,"q26":1,"q27":3,"q28":1,"q29":1,"q30":5,"q31":1,"q32":3,"q33":5,"q34":2,"q35":2,"q36":1,"q37":1,"q38":5,"q39":5,"q40":5,"q41":1,"q42":1,"q43":1,"q44":3,"q45":5,"q46":1,"q47":3,"q48":1,"q49":1,"q50":1,"q51":1,"q52":1,"q53":1,"q54":2,"q55":1,"q56":1,"q57":1,"q58":1,"q59":1,"q60":1,"qv1":1,"qv2":1,"qv3":2,"qv4":2,"qv5":2,"qv6":2,"qv7":1,"qv8":1,"qv9":2,"qv10":2,"qv11":2,"qv12":2,"qv13":2,"qv14":2,"qv15":2,"qv16":2,"qv17":2,"qv18":1,"qv19":1,"qv20":2,"qv21":1,"qv22":2,"qv23":2,"qv24":2,"qv25":2,"qv26":2}','2023-10-27 15:00:00'),('ptv_0533_sjhy','13573392557','{"Gender":"f","Age":"O","q1O":5,"q2O":5,"q3O":5,"q4O":5,"q5O":5,"q6O":5,"q7O":5,"q8O":2,"q9O":5,"q10O":1,"q11O":5,"q12O":5,"q13O":5,"q14O":5,"q15O":5,"q16O":5,"q17O":5,"q18O":5,"q19O":5,"q20O":5,"q21O":5,"q22O":5,"q23O":5,"q24O":5,"q25O":3,"q26O":5,"q27O":2,"q28O":5,"q29O":3,"q30O":3,"q1":1,"q3":3,"q4":1,"q5":5,"q6":4,"q8":5,"q10":5,"q13":3,"q14":2,"q15":1,"q16":1,"q17":4,"q18":5,"q19":5,"q20":5,"q22":5,"q23":3,"q25":2,"q26":4,"q27":5,"q28":5,"q29":5,"q30":4,"q31":1,"q32":1,"q33":1,"q34":1,"q35":3,"q36":1,"q37":1,"q38":3,"q39":4,"q40":5,"q41":1,"q42":1,"q43":2,"q44":1,"q45":3,"q46":1,"q47":3,"q48":3,"q49":2,"q50":4,"q51":1,"q52":4,"q53":1,"q54":3,"q55":3,"q56":1,"q57":5,"q58":3,"q59":1,"q60":5,"qv1":1,"qv2":1,"qv3":2,"qv4":2,"qv5":1,"qv6":2,"qv7":2,"qv8":2,"qv9":1,"qv10":2,"qv11":1,"qv12":1,"qv13":1,"qv14":2,"qv15":1,"qv16":1,"qv17":2,"qv18":2,"qv19":2,"qv20":1,"qv21":1,"qv22":2,"qv23":2,"qv24":2,"qv25":2,"qv26":2}','2023-10-27 15:00:00'),('ptv_0533_sjhy','15954798900','{"Gender":"f","Age":"O","q1O":3,"q2O":2,"q3O":2,"q4O":2,"q5O":5,"q6O":5,"q7O":5,"q8O":4,"q9O":5,"q10O":1,"q11O":4,"q12O":5,"q13O":5,"q14O":4,"q15O":5,"q16O":5,"q17O":5,"q18O":4,"q19O":4,"q20O":4,"q21O":4,"q22O":4,"q23O":4,"q24O":4,"q25O":4,"q26O":4,"q27O":4,"q28O":2,"q29O":4,"q30O":3,"q1":4,"q3":2,"q4":2,"q5":2,"q6":4,"q8":3,"q10":3,"q13":2,"q14":2,"q15":3,"q16":3,"q17":3,"q18":2,"q19":2,"q20":2,"q22":2,"q23":2,"q25":2,"q26":2,"q27":3,"q28":3,"q29":3,"q30":2,"q31":2,"q32":2,"q33":2,"q34":2,"q35":2,"q36":2,"q37":2,"q38":3,"q39":3,"q40":2,"q41":2,"q42":2,"q43":2,"q44":3,"q45":3,"q46":3,"q47":2,"q48":2,"q49":3,"q50":2,"q51":2,"q52":2,"q53":2,"q54":2,"q55":2,"q56":2,"q57":2,"q58":2,"q59":2,"q60":2,"qv1":2,"qv2":2,"qv3":1,"qv4":2,"qv5":2,"qv6":2,"qv7":1,"qv8":2,"qv9":1,"qv10":2,"qv11":1,"qv12":2,"qv13":2,"qv14":1,"qv15":2,"qv16":2,"qv17":2,"qv18":2,"qv19":2,"qv20":2,"qv21":2,"qv22":2,"qv23":2,"qv24":2,"qv25":2,"qv26":2}','2023-10-27 15:00:00'),('ptv_0533_sjhy','13563031324','{"Gender":"m","Age":"O","q1O":2,"q2O":1,"q3O":1,"q4O":1,"q5O":1,"q6O":5,"q7O":5,"q8O":5,"q9O":5,"q10O":1,"q11O":3,"q12O":4,"q13O":4,"q14O":4,"q15O":5,"q16O":5,"q17O":5,"q18O":5,"q19O":5,"q20O":5,"q21O":4,"q22O":5,"q23O":5,"q24O":4,"q25O":4,"q26O":4,"q27O":4,"q28O":2,"q29O":4,"q30O":3,"q1":4,"q3":1,"q4":1,"q5":3,"q6":5,"q8":2,"q10":2,"q13":1,"q14":3,"q15":1,"q16":2,"q17":3,"q18":2,"q19":2,"q20":2,"q22":2,"q23":1,"q25":1,"q26":3,"q27":3,"q28":3,"q29":2,"q30":4,"q31":2,"q32":2,"q33":2,"q34":1,"q35":2,"q36":1,"q37":2,"q38":3,"q39":4,"q40":3,"q41":4,"q42":1,"q43":1,"q44":2,"q45":2,"q46":1,"q47":1,"q48":1,"q49":1,"q50":1,"q51":1,"q52":2,"q53":1,"q54":1,"q55":1,"q56":1,"q57":5,"q58":5,"q59":1,"q60":2,"qv1":2,"qv2":2,"qv3":2,"qv4":2,"qv5":2,"qv6":2,"qv7":1,"qv8":2,"qv9":2,"qv10":2,"qv11":2,"qv12":2,"qv13":2,"qv14":2,"qv15":2,"qv16":2,"qv17":2,"qv18":2,"qv19":1,"qv20":2,"qv21":1,"qv22":2,"qv23":1,"qv24":2,"qv25":2,"qv26":2}','2023-10-27 15:00:00'),('ptv_0533_sjhy','13953302959','{"Gender":"f","Age":"O","q1O":2,"q2O":3,"q3O":5,"q4O":3,"q5O":5,"q6O":4,"q7O":3,"q8O":5,"q9O":3,"q10O":1,"q11O":5,"q12O":4,"q13O":4,"q14O":5,"q15O":5,"q16O":5,"q17O":4,"q18O":5,"q19O":5,"q20O":5,"q21O":5,"q22O":3,"q23O":5,"q24O":5,"q25O":3,"q26O":4,"q27O":2,"q28O":4,"q29O":4,"q30O":4,"q1":5,"q3":1,"q4":3,"q5":5,"q6":4,"q8":3,"q10":3,"q13":1,"q14":4,"q15":5,"q16":2,"q17":5,"q18":5,"q19":2,"q20":2,"q22":2,"q23":2,"q25":2,"q26":5,"q27":2,"q28":3,"q29":2,"q30":5,"q31":2,"q32":1,"q33":2,"q34":2,"q35":2,"q36":2,"q37":2,"q38":2,"q39":2,"q40":2,"q41":3,"q42":2,"q43":2,"q44":4,"q45":3,"q46":1,"q47":2,"q48":4,"q49":4,"q50":2,"q51":2,"q52":2,"q53":3,"q54":1,"q55":1,"q56":2,"q57":3,"q58":2,"q59":2,"q60":1,"qv1":1,"qv2":2,"qv3":1,"qv4":2,"qv5":1,"qv6":1,"qv7":2,"qv8":2,"qv9":1,"qv10":2,"qv11":2,"qv12":1,"qv13":2,"qv14":2,"qv15":1,"qv16":1,"qv17":1,"qv18":1,"qv19":1,"qv20":2,"qv21":1,"qv22":2,"qv23":2,"qv24":1,"qv25":2,"qv26":2}','2023-10-27 15:00:00'),('ptv_0533_sjhy','18553352007','{"Gender":"f","Age":"O","q1O":5,"q2O":3,"q3O":2,"q4O":3,"q5O":4,"q6O":4,"q7O":4,"q8O":4,"q9O":4,"q10O":3,"q11O":4,"q12O":4,"q13O":4,"q14O":4,"q15O":5,"q16O":5,"q17O":4,"q18O":2,"q19O":2,"q20O":5,"q21O":3,"q22O":1,"q23O":5,"q24O":5,"q25O":3,"q26O":4,"q27O":3,"q28O":3,"q29O":5,"q30O":3,"q1":3,"q3":3,"q4":3,"q5":4,"q6":4,"q8":2,"q10":3,"q13":1,"q14":5,"q15":5,"q16":4,"q17":4,"q18":4,"q19":3,"q20":1,"q22":3,"q23":1,"q25":1,"q26":1,"q27":1,"q28":4,"q29":2,"q30":3,"q31":1,"q32":1,"q33":1,"q34":1,"q35":4,"q36":1,"q37":1,"q38":1,"q39":1,"q40":1,"q41":1,"q42":1,"q43":1,"q44":1,"q45":1,"q46":1,"q47":1,"q48":1,"q49":1,"q50":1,"q51":1,"q52":1,"q53":1,"q54":4,"q55":3,"q56":4,"q57":1,"q58":1,"q59":1,"q60":1,"qv1":1,"qv2":1,"qv3":2,"qv4":2,"qv5":2,"qv6":2,"qv7":1,"qv8":1,"qv9":1,"qv10":2,"qv11":1,"qv12":2,"qv13":2,"qv14":2,"qv15":2,"qv16":1,"qv17":2,"qv18":2,"qv19":2,"qv20":2,"qv21":2,"qv22":2,"qv23":2,"qv24":1,"qv25":2,"qv26":2}','2023-10-27 15:00:00'),('ptv_0533_sjhy','13906430187','{"Gender":"f","Age":"O","q1O":3,"q2O":2,"q3O":2,"q4O":2,"q5O":5,"q6O":5,"q7O":5,"q8O":2,"q9O":5,"q10O":3,"q11O":3,"q12O":5,"q13O":5,"q14O":4,"q15O":4,"q16O":4,"q17O":4,"q18O":3,"q19O":4,"q20O":4,"q21O":2,"q22O":4,"q23O":4,"q24O":2,"q25O":4,"q26O":4,"q27O":4,"q28O":4,"q29O":4,"q30O":4,"q1":3,"q3":3,"q4":2,"q5":2,"q6":3,"q8":2,"q10":3,"q13":2,"q14":2,"q15":2,"q16":2,"q17":1,"q18":2,"q19":2,"q20":3,"q22":3,"q23":3,"q25":3,"q26":3,"q27":3,"q28":2,"q29":2,"q30":1,"q31":1,"q32":1,"q33":2,"q34":2,"q35":2,"q36":2,"q37":1,"q38":2,"q39":1,"q40":1,"q41":1,"q42":1,"q43":1,"q44":3,"q45":2,"q46":1,"q47":2,"q48":3,"q49":1,"q50":1,"q51":1,"q52":1,"q53":1,"q54":1,"q55":1,"q56":2,"q57":2,"q58":1,"q59":1,"q60":1,"qv1":1,"qv2":2,"qv3":2,"qv4":2,"qv5":2,"qv6":2,"qv7":2,"qv8":2,"qv9":1,"qv10":2,"qv11":2,"qv12":2,"qv13":2,"qv14":2,"qv15":2,"qv16":2,"qv17":2,"qv18":1,"qv19":1,"qv20":2,"qv21":2,"qv22":2,"qv23":2,"qv24":2,"qv25":2,"qv26":2}','2023-10-27 15:00:00'),('ptv_0533_sjhy','10002268211','{"Gender":"f","Age":"O","q1O":4,"q2O":4,"q3O":4,"q4O":3,"q5O":3,"q6O":4,"q7O":4,"q8O":4,"q9O":5,"q10O":2,"q11O":3,"q12O":4,"q13O":4,"q14O":4,"q15O":5,"q16O":5,"q17O":5,"q18O":5,"q19O":4,"q20O":4,"q21O":3,"q22O":5,"q23O":4,"q24O":4,"q25O":2,"q26O":3,"q27O":3,"q28O":1,"q29O":3,"q30O":3,"q1":3,"q3":4,"q4":2,"q5":4,"q6":3,"q8":4,"q10":2,"q13":4,"q14":1,"q15":3,"q16":1,"q17":4,"q18":3,"q19":3,"q20":2,"q22":3,"q23":3,"q25":1,"q26":1,"q27":4,"q28":3,"q29":3,"q30":3,"q31":2,"q32":2,"q33":2,"q34":2,"q35":4,"q36":2,"q37":2,"q38":1,"q39":1,"q40":1,"q41":1,"q42":3,"q43":2,"q44":3,"q45":3,"q46":3,"q47":2,"q48":2,"q49":2,"q50":3,"q51":3,"q52":1,"q53":3,"q54":3,"q55":3,"q56":3,"q57":4,"q58":1,"q59":3,"q60":3,"qv1":1,"qv2":1,"qv3":1,"qv4":1,"qv5":2,"qv6":2,"qv7":1,"qv8":1,"qv9":1,"qv10":2,"qv11":1,"qv12":1,"qv13":2,"qv14":2,"qv15":2,"qv16":1,"qv17":2,"qv18":1,"qv19":1,"qv20":2,"qv21":1,"qv22":2,"qv23":2,"qv24":2,"qv25":1,"qv26":2}','2023-10-27 15:00:00'),('ptv_0533_sjhy','15953353009','{"Gender":"f","Age":"O","q1O":3,"q2O":3,"q3O":3,"q4O":2,"q5O":1,"q6O":5,"q7O":5,"q8O":4,"q9O":5,"q10O":2,"q11O":4,"q12O":4,"q13O":4,"q14O":4,"q15O":5,"q16O":5,"q17O":5,"q18O":5,"q19O":5,"q20O":5,"q21O":5,"q22O":5,"q23O":5,"q24O":5,"q25O":4,"q26O":4,"q27O":4,"q28O":5,"q29O":5,"q30O":4,"q1":5,"q3":2,"q4":2,"q5":1,"q6":2,"q8":3,"q10":2,"q13":2,"q14":2,"q15":1,"q16":1,"q17":1,"q18":2,"q19":1,"q20":1,"q22":1,"q23":2,"q25":2,"q26":4,"q27":2,"q28":3,"q29":2,"q30":2,"q31":2,"q32":2,"q33":2,"q34":2,"q35":2,"q36":2,"q37":2,"q38":2,"q39":1,"q40":3,"q41":1,"q42":1,"q43":2,"q44":2,"q45":3,"q46":1,"q47":1,"q48":2,"q49":2,"q50":1,"q51":1,"q52":2,"q53":3,"q54":2,"q55":2,"q56":1,"q57":1,"q58":1,"q59":1,"q60":1,"qv1":2,"qv2":2,"qv3":2,"qv4":2,"qv5":2,"qv6":2,"qv7":2,"qv8":1,"qv9":2,"qv10":2,"qv11":2,"qv12":2,"qv13":2,"qv14":2,"qv15":2,"qv16":2,"qv17":2,"qv18":2,"qv19":1,"qv20":2,"qv21":2,"qv22":2,"qv23":2,"qv24":2,"qv25":2,"qv26":2}','2023-10-27 15:00:00'),('ptv_0533_sjhy','15966972231','{"Gender":"f","Age":"O","q1O":4,"q2O":4,"q3O":4,"q4O":3,"q5O":3,"q6O":4,"q7O":4,"q8O":4,"q9O":5,"q10O":2,"q11O":3,"q12O":4,"q13O":4,"q14O":4,"q15O":5,"q16O":5,"q17O":5,"q18O":5,"q19O":4,"q20O":4,"q21O":3,"q22O":5,"q23O":5,"q24O":4,"q25O":4,"q26O":3,"q27O":4,"q28O":1,"q29O":4,"q30O":3,"q1":3,"q3":3,"q4":3,"q5":2,"q6":2,"q8":4,"q10":2,"q13":4,"q14":4,"q15":3,"q16":1,"q17":3,"q18":1,"q19":2,"q20":2,"q22":3,"q23":3,"q25":1,"q26":1,"q27":4,"q28":3,"q29":3,"q30":3,"q31":2,"q32":2,"q33":2,"q34":2,"q35":4,"q36":2,"q37":2,"q38":1,"q39":1,"q40":1,"q41":1,"q42":1,"q43":1,"q44":3,"q45":3,"q46":3,"q47":2,"q48":2,"q49":2,"q50":2,"q51":1,"q52":1,"q53":1,"q54":3,"q55":3,"q56":3,"q57":4,"q58":1,"q59":3,"q60":3,"qv1":1,"qv2":1,"qv3":2,"qv4":1,"qv5":2,"qv6":2,"qv7":1,"qv8":2,"qv9":1,"qv10":2,"qv11":1,"qv12":2,"qv13":2,"qv14":2,"qv15":2,"qv16":2,"qv17":2,"qv18":2,"qv19":2,"qv20":2,"qv21":1,"qv22":2,"qv23":2,"qv24":2,"qv25":2,"qv26":2}','2023-10-27 15:00:00'),('ptv_0533_sjhy','17865910365','{"Gender":"f","Age":"O","q1O":2,"q2O":3,"q3O":2,"q4O":2,"q5O":4,"q6O":4,"q7O":4,"q8O":4,"q9O":5,"q10O":3,"q11O":4,"q12O":4,"q13O":5,"q14O":5,"q15O":5,"q16O":4,"q17O":5,"q18O":2,"q19O":4,"q20O":4,"q21O":4,"q22O":4,"q23O":5,"q24O":5,"q25O":4,"q26O":2,"q27O":4,"q28O":2,"q29O":4,"q30O":2,"q1":4,"q3":3,"q4":2,"q5":4,"q6":4,"q8":4,"q10":2,"q13":2,"q14":4,"q15":2,"q16":4,"q17":5,"q18":5,"q19":2,"q20":3,"q22":4,"q23":2,"q25":1,"q26":3,"q27":4,"q28":2,"q29":2,"q30":2,"q31":1,"q32":3,"q33":3,"q34":2,"q35":2,"q36":2,"q37":1,"q38":3,"q39":2,"q40":3,"q41":1,"q42":1,"q43":1,"q44":4,"q45":5,"q46":1,"q47":1,"q48":1,"q49":1,"q50":1,"q51":3,"q52":1,"q53":1,"q54":3,"q55":3,"q56":1,"q57":1,"q58":1,"q59":1,"q60":1,"qv1":1,"qv2":2,"qv3":1,"qv4":2,"qv5":2,"qv6":2,"qv7":1,"qv8":1,"qv9":2,"qv10":2,"qv11":1,"qv12":2,"qv13":2,"qv14":2,"qv15":1,"qv16":1,"qv17":2,"qv18":1,"qv19":2,"qv20":2,"qv21":2,"qv22":2,"qv23":2,"qv24":2,"qv25":2,"qv26":2}','2023-10-27 15:00:00'),('ptv_0533_sjhy','15689048244','{"Gender":"f","Age":"O","q1O":4,"q2O":5,"q3O":5,"q4O":4,"q5O":4,"q6O":4,"q7O":4,"q8O":2,"q9O":5,"q10O":2,"q11O":4,"q12O":4,"q13O":5,"q14O":5,"q15O":5,"q16O":4,"q17O":5,"q18O":4,"q19O":4,"q20O":4,"q21O":4,"q22O":4,"q23O":5,"q24O":5,"q25O":1,"q26O":2,"q27O":2,"q28O":2,"q29O":4,"q30O":3,"q1":4,"q3":2,"q4":2,"q5":4,"q6":2,"q8":2,"q10":2,"q13":2,"q14":4,"q15":1,"q16":5,"q17":5,"q18":5,"q19":2,"q20":1,"q22":2,"q23":2,"q25":1,"q26":1,"q27":4,"q28":4,"q29":5,"q30":3,"q31":1,"q32":4,"q33":4,"q34":2,"q35":4,"q36":2,"q37":3,"q38":2,"q39":2,"q40":2,"q41":1,"q42":1,"q43":1,"q44":5,"q45":5,"q46":1,"q47":3,"q48":1,"q49":1,"q50":1,"q51":3,"q52":1,"q53":1,"q54":1,"q55":3,"q56":1,"q57":1,"q58":1,"q59":3,"q60":1,"qv1":2,"qv2":2,"qv3":2,"qv4":2,"qv5":2,"qv6":2,"qv7":1,"qv8":2,"qv9":1,"qv10":2,"qv11":2,"qv12":2,"qv13":2,"qv14":2,"qv15":1,"qv16":1,"qv17":1,"qv18":1,"qv19":2,"qv20":2,"qv21":1,"qv22":2,"qv23":2,"qv24":1,"qv25":2,"qv26":2}','2023-10-27 15:00:00'),
In [ ]: