Files
jupyter/体测单位/东营羊庙.ipynb
T
2023-03-25 21:42:59 +08:00

18 KiB

调查报告线下数据管理

羊庙人员信息导入

In [109]:
import json

filename = 'data/羊庙测试人员信息.json'

with open(filename,'r') as fl:
    dict1 = json.load(fl) 
dict2 = {}
for k,v in dict1.items():
    for item in v:
        bh = item['avatar_id']
        del item['avatar_id']
        dict2[bh] = item
filename = 'data/羊庙人员名单.json'
with open(filename, 'w') as fl:
    json.dump(dict2, fl, ensure_ascii=False,default=str)
print('ok')
ok

获取参加体测人员编号

In [106]:
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 = []
#print("\n运动项目信息:")
filename = 'data/140.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)
list2 = []
for result in list1:
    user = int(result[2])
    if user not in list2:
        list2.append(user)
list2.sort()
print(len(list2))
465

根据风险筛选统计卡获取信息

In [110]:
import openpyxl
import json
import time

wb = openpyxl.load_workbook('data/杨庙运动风险筛查统计表.xlsx')
sheet = wb.active
person = {}
for n in range(2, sheet.max_row+1):
    code = int(sheet.cell(n, 1).value)
    person.setdefault(code, {})
    dict1 = {}
    if sheet.cell(n, 8).value is not None:
        name = sheet.cell(n, 8).value
    else:
        name ='不详'
    dict1['name'] = name
    if sheet.cell(n, 9).value is not None:
        dict1['birth'] = str(sheet.cell(n, 9).value).split(' ')[0]
    if sheet.cell(n, 10).value is not None:
        dict1['phone'] = str(sheet.cell(n, 10).value)
    if sheet.cell(n,11).value is not None:
        dict1['id_num'] = sheet.cell(n,11).value
    person[code] = dict1
print(len(person))
filename = 'data/杨庙运动风险筛查统计表信息.json'
with open(filename, 'w') as fl:
    json.dump(person, fl, ensure_ascii=False,default=str)
print('ok')
440
ok

根据恢复版获取信息

In [111]:
import openpyxl
import json
import time

wb = openpyxl.load_workbook('data/羊庙恢复版.xlsx')
sheet = wb.active
person = {}
for n in range(2, sheet.max_row+1):
    if sheet.cell(n, 4).value is not None:        
        code = int(sheet.cell(n, 4).value)
        person.setdefault(code, {})
        dict1 = {}
        name = sheet.cell(n, 5).value
        dict1['name'] = name
        dict1['bh'] = n - 1
        dict1['sex'] = sheet.cell(n, 6).value
        if sheet.cell(n, 9).value is not None:
            dict1['phone'] = str(sheet.cell(n, 9).value)
        if sheet.cell(n,8).value is not None:
            dict1['id_num'] = sheet.cell(n,8).value
        if sheet.cell(n,3).value is not None:
            dict1['unit'] = sheet.cell(n,3).value
        person[code] = dict1
print(len(person))
filename = 'data/杨庙恢复版信息.json'
with open(filename, 'w') as fl:
    json.dump(person, fl, ensure_ascii=False,default=str)
print('ok')
350
ok

风险筛选统计卡可用人员信息

In [112]:
re_ta = {}
dict1 = {}
list1 = []
#print("\n运动项目信息:")
filename = 'data/140.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)
list2 = []
for result in list1:
    user = int(result[2])
    if user not in list2:
        list2.append(user)
list2.sort()
set1 = set()
filename = 'data/杨庙恢复版信息.json'
with open(filename,'r') as fl:
    dict_base = json.load(fl)
for k, v in dict_base.items():
    set1.add(int(k))
filename = 'data/杨庙运动风险筛查统计表信息.json'

with open(filename,'r') as fl:
    dict1 = json.load(fl)
list_fx = []

for k,v in dict1.items():
    
    if int(k) in list2 and k not in dict_base.keys() and v['name'] != '不详':        
        set1.add(int(k))
#print(len(list_fx))
#print(len(set1)) 
for item in list2:
    if item not in set1:
        print(item)
103
314
555
666
777
999
1000
1001
2367
3456
6000
6001
6002
6003
6602
8888
8889
9999
10000
11112
66666
77777
88888
98000
99999
111111
888888
999998
999999
9999999
999999999

补充恢复版信息

In [126]:
filename = 'data/杨庙恢复版信息.json'
with open(filename,'r') as fl:
    dict_base = json.load(fl)
for k, v in dict_base.items():
    set1.add(int(k))
filename = 'data/杨庙运动风险筛查统计表信息.json'

with open(filename,'r') as fl:
    dict1 = json.load(fl)
for k,v in dict_base.items():
    if k in dict1.keys() and 'phone' not in v.keys() and 'phone' in dict1[k].keys():
        #print(k,v['name'])
        dict_base[k]['phone'] =  dict1[k]['phone']

for k, v in dict1.items():
    if int(k) in list2 and k not in dict_base.keys():
        dict_base[k] = v
        
print(len(dict_base))
#print(dict_base)
filename = 'data/羊庙人员名单.json'
with open(filename,'r') as fl:
    dict2 = json.load(fl)
i = 1
for k, v in dict_base.items():
    if 'bh' not in v.keys():
        name = v['name']
        n = 0
        for k1,v1 in dict2.items():
            if name == v1['name']:
                bh = k1
                n = n+1
        if n ==1:
            dict_base[k]['bh'] = bh
        else:
            print(i,k,v['name'])
            i+=1
filename = 'data/杨庙补充汇总信息.json'
with open(filename, 'w') as fl:
    json.dump(dict_base, fl, ensure_ascii=False,default=str)
print('ok')
438
1 98776 唐庆振
2 398 黄志全
3 388 施怡如
4 98767 张莉
5 98766 张爱芹
6 367 李树强
7 339 刘俊英
8 338 刘树训
9 98765 张红霞
10 314 不详
11 313 王祝娥
12 312 赵芝堂
13 311 吕秀英
14 308 刘玉娥
15 307 程潍芳
16 305 韩春光
17 304 赵娥
18 299 盖彦玮
19 288 盖汝亭
20 280 柯天新
21 247 程华英
22 246 郭俊敏
23 244 罗桂贤
24 235 胡巧英
25 232 许义田
26 230 韩红华
27 226 杨秀荣
28 223 樊风亭
29 218 程玉良
30 213 张金宗
31 208 王小冬
32 200 李勇军
33 196 王连秀
34 188 杨志敏
35 151 许海仙
36 149 盖梦娜
37 148 冯静静
38 147 王海方
39 145 裴
40 136 刘兆合
41 134 张荣俊
42 120 郑凤
43 114 许建玲
44 103 不详
45 102 孙海莹
46 99 周
47 90 刘桂英
48 89 石云贞
49 80 刘凤英
50 74 李若梅
51 65 许秀凤
52 64 刘小凤
53 62 吕吉刚
54 60 盖
55 47 王其美
56 38 罗炳顺
57 35 藏学亮
58 34 胡世杰
59 29 盖叔臣
60 21 黄雯青
61 16 王金花
62 14 石立华
ok

成年问卷导入

In [ ]:
import openpyxl
import json


wb = openpyxl.load_workbook('data/羊庙问卷统计表(成年组).xlsx')
sheet = wb.active
# sheets = wb.sheetnames
dict1 = {}
dict3 = {}
no_xinli = [108,389,268,270]
sheet = wb.active
data1 =list(sheet.values)
list_bh = data1[0][1:]
del data1[0]
print(len(list_bh))
for i in range(1,len(list_bh)+1):
    list2 = []
    
    for item in data1:
        list2.append(item[i])
    dict1[list_bh[i-1]] = list2
for k, v in dict1.items():
    if 0 in v:
        print(k)

老年问卷导入

In [ ]:
import openpyxl
import json


wb = openpyxl.load_workbook('data/羊庙问卷统计表(老年组).xlsx')
sheet = wb.active
# sheets = wb.sheetnames
dict1 = {}
dict3 = {}
no_xinli = [286]
sheet = wb.active
data1 =list(sheet.values)
list_bh = data1[0][1:]
print(list_bh)
del data1[0]
print(len(list_bh))
for i in range(1,len(list_bh)+1):
    list2 = []
    
    for item in data1:
        list2.append(item[i])
    dict1[list_bh[i-1]] = list2
for k, v in dict1.items():
    if 0 in v or ' ' in v:
        print(k)
print(dict1)

统计网络问卷信息

In [119]:
filename = 'data/merge1.json'

with open(filename,'r') as fl:
    dict1 = json.load(fl)
#print(dict1)
filename = 'data/杨庙补充汇总信息.json'
with open(filename,'r') as fl:
    dict2 = json.load(fl)
dict3 = {}
for k, v in dict1.items():
    print(len(v))
    for item in v:
        phone = item['phone']
        dict3.setdefault(phone,{})
        #dict3[phone]['data'] = v['data']
        for k1,v1 in dict2.items():
            if 'phone' in v1.keys() and phone == v1['phone']:
                dict3[phone]['bh'] = k1
print(len(dict3))        
68
68
In [ ]: