Files
jupyter/体测单位/西藏.ipynb
T
2023-06-19 12:03:05 +08:00

9.7 KiB

人员信息导入

In [ ]:
import openpyxl
import json


wb = openpyxl.load_workbook('data/健康体质检测人员名单(西藏销售).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, 1).value)
        person.setdefault(code, {})
        dict1 = {}
        dict1['name'] = sheet.cell(n, 2).value
        if sheet.cell(n, 3).value ==1:
            sex = '男'
        else:
            sex = '女'
        dict1['sex'] = sex
        birth = str(sheet.cell(n, 4).value).split()[0]
        dict1['birth'] = birth
        dict1['unit'] = sheet.cell(n, 6).value
        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')

问卷人员信息导入

In [ ]:
import openpyxl
import json
import datetime

wb = openpyxl.load_workbook('data/西藏健康体质检测人员名单.xlsx')
sheet = wb.active
# sheets = wb.sheetnames
person = {}

for n in range(2, sheet.max_row+1):
    if sheet.cell(n,7).value is not None and sheet.cell(n,4).value is not None:
        bh = int(sheet.cell(n, 7).value)
        person.setdefault(bh, {})
        dict1 = {}
        dict1['name'] = sheet.cell(n, 2).value
        dict1['code'] = sheet.cell(n, 1).value
        if sheet.cell(n, 3).value ==1:
            sex = '男'
        else:
            sex = '女'
        dict1['sex'] = sex
        birth = str(sheet.cell(n, 4).value).split()[0]
        
        if len(birth) == 2:
            dict1['age'] = int(birth)
        else:
            birth.replace('/','-')
            
            birth = birth.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, 5, 31)-datetime.date(nian,yue,ri)).days
            dict1['age'] = round(days/365)
        if sheet.cell(n,5).value is not None:
            dict1['phone'] = str(sheet.cell(n, 5).value)        
        person[bh] = dict1

filename = 'data/西藏手工问卷人员名单.json'
with open(filename, 'w') as fl:
    json.dump(person, fl, ensure_ascii=False)
print('ok')

导入脊柱问卷信息

In [ ]:
import openpyxl
import json


wb = openpyxl.load_workbook('data/西藏手工记录.xlsx')
sheet = wb['Sheet1']

dict1 = {}
data1 =list(sheet.values)
list_bh = data1[0][1:]
del data1[0]
for i in range(1,len(list_bh)+1):
    list2 = []
    dict1.setdefault(int(list_bh[i-1]),{})
    for item in data1:
        list2.append(item[i])
    dict1[int(list_bh[i-1])]['wenjuan'] = list2
print(dict1)
filename = 'data/西藏脊柱问卷原始信息.json'
with open(filename, 'w') as fl:
    json.dump(dict1, fl, ensure_ascii=False)
print('ok')

导入体测信息

In [ ]:
import openpyxl
import json


wb = openpyxl.load_workbook('data/西藏手工记录.xlsx')
sheet = wb['Sheet2']
filename = 'data/西藏脊柱问卷原始信息.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl)

data1 =list(sheet.values)

for item in data1:
    bh = str(item[0])
    dict1.setdefault(bh,{})
    xm = item[1]
    result = item[2]
    dict1[bh][xm] = result
filename = 'data/西藏脊柱问卷原始信息.json'
with open(filename, 'w') as fl:
    json.dump(dict1, fl, ensure_ascii=False)
print('ok')

导出手工信息

In [ ]:
import json

filename = 'data/西藏手工问卷人员名单.json'
with open(filename,'r') as fl:
    dict2 = json.load(fl)
filename = 'data/西藏脊柱问卷原始信息.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl)

for k, v in dict1.items():
    s = ''
    if k in dict2.keys():
        if dict2[str(k)]['sex'] =='男':
            sex = "m"
        else:
            sex = "f"
        dict3 = {}
        list_mx = []
        name = dict2[str(k)]['name'] 
        list_mx.append(f'"name":"{name}"')
        list_mx.append(f'"Gender":"{sex}"')
        age = dict2[str(k)]['age']
        list_mx.append(f'"Age":{age}')
        dict3['surveyId'] = "zsyxz1"
        dict3['name'] = dict2[str(k)]['name'] 
        code =  dict2[str(k)]['code']
        for item in v.keys():
            if item == 'wenjuan':
                for i in range(0,21):
                    if v[item][i] ==1:
                        result = 'ture'
                    else:
                        result ='false'  
                    item_name = 'q'+str(i+1)
                    list_mx.append(f'"{item_name}":{result}')
                for i in range(23,25):
                    if v[item][i] ==1:
                        result = 'ture'
                    else:
                        result ='false'  
                    item_name = 'q'+str(i)
                    list_mx.append(f'"{item_name}":{result}')
                if sex == 'f':
                    item_name = 'q25a'
                    if v[item][21] ==1:
                        result = 'ture'
                    else:
                        result ='false'
                    list_mx.append(f'"{item_name}":{result}')
                else:
                    item_name = 'q22'
                    if v[item][22] ==1:
                        result = 'ture'
                    else:
                        result ='false'
                    list_mx.append(f'"{item_name}":{result}')
                    item_name = 'q25b'
                    if v[item][25] ==1:
                        result = 'ture'
                    else:
                        result ='false'
                    list_mx.append(f'"{item_name}":{result}')
            else:    
                item_name = item                
                list_mx.append(f'"{item_name}":{v[item]}')
        ss = ','.join(list_mx)
        ss ='{'+ss+'}'
        dict3['data'] = ss
        sj = '2023-06-01 20:00:00'
        s= s+f'("zsyxz1","{name}","{code}",\'{ss}\',"{sj}"),'
        print(s)
In [ ]: