Files
jupyter/体测单位/淄博交警支队.ipynb
T
2022-10-18 19:03:07 +08:00

33 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,2).value is None:
        break
    else:
        
        code = int(sheet.cell(n, 4).value)
        person.setdefault(code, {})
        dict1 = {}
        dict1['name'] = sheet.cell(n, 6).value    
        xb = str(sheet.cell(n, 7).value)
        if xb == '1':
            sex = '男'
        elif xb =='2':
            sex = '女'
        dict1['sex'] = sex
        dict1['unit'] = sheet.cell(n, 3).value
        dict1['birth'] = str(sheet.cell(n,8).value).split(' ')[0]
        person[code] = dict1
filename = 'data/交警支队名单221010.json'
with open(filename, 'w') as fl:
    json.dump(person, fl, ensure_ascii=False)
print('ok')

小鹅通人员信息导入

In [ ]:
import json
import os
import glob
import csv

fi_path = 'data/小鹅通/'
dict1 = {}
fl = glob.glob(f'{fi_path}*.csv')
list1 = []
for fn in fl:
    with open(fn,'r',newline='',encoding='gb18030') as csv_file:
        fl1 = csv.reader(csv_file,delimiter=',')
        header = next(fl1)    
        for line in fl1:
            #line = re.sub('[\r\n\f ]{1,}', '', line)
            list1.append(line)
for item in list1:
    dict1.setdefault(item[0],{})
    dict1[item[0]]['nick'] = item[1]
    dict1[item[0]]['name'] = item[4] 
    dict1[item[0]]['phone'] = item[5] 
filename = 'data/小鹅通人员信息221010.json'
with open(filename,'w') as fl:
    json.dump(dict1, fl,ensure_ascii=False) 

人员手机号码导入

In [ ]:
import openpyxl
import json

wb = openpyxl.load_workbook('data/新部门排序-淄博交警支队人员名单 _56473.xlsx')
sheet = wb.active
# sheets = wb.sheetnames
person = {}
for n in range(2, sheet.max_row+1):
    if sheet.cell(n,2).value is None:
        break
    else:
        phone = sheet.cell(n, 5).value
        person.setdefault(phone, {})
        dict1 = {}
        dict1['name'] = sheet.cell(n, 2).value    
        xb = str(sheet.cell(n, 3).value)
        if xb == '1':
            sex = '男'
        elif xb =='2':
            sex = '女'
        dict1['sex'] = sex
        dict1['unit'] = sheet.cell(n, 1).value
        dict1['birth'] = str(sheet.cell(n,4).value).split(' ')[0]
    person[phone] = dict1
filename = 'data/交警支队手机号码221010.json'
with open(filename, 'w') as fl:
    json.dump(person, fl, ensure_ascii=False)
print('ok')

关联人员手机号码及测试编号

In [ ]:
import json

filename = 'data/交警支队名单221010.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl) 
list2 = []
filename = 'data/交警支队手机号码221010.json'
with open(filename,'r') as fl:
    dict2 = json.load(fl)
for k, v in dict2.items():    
    list1 = [k,v['name'],v['birth'],v['unit']]
    list2.append(list1)
for k, v in dict1.items():
    name = v['name']
    birth = v['birth']
    for item in list2:
        if name in item and birth in item:
            dict1[k]['phone'] = item[0]
            dict1[k]['unit'] = item[3]
            dict2[item[0]]['code'] =  k
            break
filename = 'data/交警支队名单221010.json'
with open(filename, 'w') as fl:
    json.dump(dict1, fl, ensure_ascii=False)
filename = 'data/交警支队手机号码221010.json'
with open(filename, 'w') as fl:
    json.dump(dict2, fl, ensure_ascii=False)
print('ok')        
            

小鹅通人员分组(按照手机号关联)

In [76]:
import json
import csv

filename = 'data/交警支队小鹅通信息221018.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl) 


filename = 'data/交警支队分组情况.csv'
with open(filename,'r',newline='') as csv_file:
    fl = csv.reader(csv_file,delimiter=',')
    header = next(fl)    
    for line in fl:
        phone = line[9]
        group = line[1]
        
        if phone in dict1.keys():
            
            dict1[phone]['group'] = group

filename = 'data/交警支队小鹅通信息221018.json'
with open(filename,'w') as fl:
    json.dump(dict1, fl,ensure_ascii=False) 

小鹅通人员信息关联

In [ ]:
import json
filename = 'data/交警支队名单221010.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl) 
dict2 = {}
for k, v in dict1.items():
    if 'phone' in v.keys():
        dict2.setdefault(v['phone'], {})
        dict2[v['phone']]['name'] = v['name']
        dict2[v['phone']]['sex'] = v['sex']
        dict2[v['phone']]['unit'] = v['unit']
        dict2[v['phone']]['birth'] = v['birth']
#print(dict2) 
list1 = dict2.keys()
filename = 'data/小鹅通人员信息221010.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl) 
for k, v in dict1.items():
    phone = v['phone']
    if phone  in list1:
        dict2[phone]['nick'] = v['nick']
        dict2[phone]['user'] = v['name']
        dict2[phone]['id'] = k
filename = 'data/交警支队小鹅通信息221010.json'
with open(filename, 'w') as fl:
    json.dump(dict2, fl, ensure_ascii=False)
print('ok')   

修正人员信息

In [74]:
import openpyxl
import json

filename = 'data/交警支队小鹅通信息221018.json'
with open(filename,'r') as fl:
    dict2 = json.load(fl) 

wb = openpyxl.load_workbook('data/新增人员表221018.xlsx')
sheet = wb.active
# sheets = wb.sheetnames

for n in range(2, sheet.max_row+1):
    if sheet.cell(n,1).value is None:
        break
    else:
        phone = sheet.cell(n, 5).value
        if phone in dict2.keys():
            dict2[phone]['id'] = sheet.cell(n, 1).value
            dict2[phone]['nick'] = sheet.cell(n, 3).value
            dict2[phone]['user'] = sheet.cell(n, 2).value
            print(sheet.cell(n, 1).value,sheet.cell(n, 3).value,sheet.cell(n, 2).value,phone)

#with open(filename, 'w') as fl:
#    json.dump(dict2, fl, ensure_ascii=False)
#print('ok')
u_6300b7d4bc5a0_ayO3NftEDA 手机尾号3202用户 None 18705333202
u_lp_1663327661_63245dad5f702_I8JfuY 任振华 None 18705336366
u_6300b888d3aac_O39r6KCeML 王勇威 王勇威 18705336122
u_6300b8a21e3fe_zWo6UFSjrS 宗力 宗力 18705336363
u_lp_1663138566_63217b06daf80_S7mJ25 薛林 薛林 18705333903
u_lp_1664546227_6336f5b346d80_TiNiu1 房思春 房思春 18705333715
u_lp_1664617172_63380ad429dcb_svfFT3 海涛 祝学迎 18705336376
u_lp_1665641415_6347abc77a7ef_yV6Wox 董凯 董凯 15269362037
u_lp_1663406890_6325932a5caff_2RIkq2 祁河成 祁河成 18705333738
u_6325217365e69_WctQcZFuHb 张红海 张红海 18705333887
u_lp_1662620239_6319924fdf4a4_pB11t3 刘军 None 18705336318
u_lp_1661481758_6308331eaba3a_TQ1j6B 交警  翟峰 交警  翟峰 18705336675
u_lp_1663329993_632466c92bc76_uSmR9Q 孔晓晖 None 18705336315
u_lp_1663634037_63290a75694c9_cbt0Ld 王维军 快乐先行 18705336077
u_lp_1663649808_63294810ce3fd_UEPrNX 刘浩 刘浩 18705333203
u_lp_1663722388_632a6394b6954_7SupvO 李传生 李传生 18705336807
u_lp_1661486861_6308470de5d47_QzgTmI 张俊杰 张俊杰 18705336069
u_lp_1664162704_63311b90e964c_jPlmpl 童保华 None 18705333707
u_lp_1665036891_633e725b684d3_hsCm37 刘进 None 18705336031
u_lp_1663295972_6323e1e4caea7_fc1HXu 于会萍 None 18705333513
u_lp_1663325439_632454ff8b99b_DrUT6S 孙孝伟 None 18705336682
u_lp_1663577491_63282d93ea1e9_JDfOU8 王青海 王青海 18705336039
u_lp_1663663112_63297c08977aa_7gPZEP 车西冬 None 18705333710

打卡信息导入

In [77]:
import openpyxl
import json
import os
import glob
import csv
import re

filename = 'data/交警支队小鹅通信息221018.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl) 
dict2 = {}
for k, v in dict1.items():
    if 'id' in v.keys():
        dict2[v['id']] = [v['name'],v['unit'],k,v['nick'],v['group']] 
dict3 = {}    
fi_path = 'data/交警支队/打卡/'
fl = glob.glob(f'{fi_path}*.csv')
list1 = []
for fn in fl:
    with open(fn,'r',newline='') as csv_file:
        fl1 = csv.reader(csv_file,delimiter=',')
        group = re.findall(r'百日筑基-(.+)》',fn)[0]
        header = next(fl1)
        for line in fl1:            
            id = line[0]
            num = line[10]
            #print(id,num)
            if id in dict2.keys() and dict2[id][4] == group:
                dict3.setdefault(id,{})
                dict3[id]['name'] = dict2[id][0]
                dict3[id]['phone'] = dict2[id][2]
                dict3[id]['unit'] = dict2[id][1]
                dict3[id]['nick'] = dict2[id][3]
                dict3[id]['dk'] = num

fi_path = 'data/交警支队/时长/'
fl = glob.glob(f'{fi_path}*.csv')

list1 = []
for fn in fl:
    with open(fn,'r',newline='',encoding='gb18030') as csv_file:
        fl1 = csv.reader(csv_file,delimiter=',')
        group = re.findall(r'《(.+)》',fn)[0]
        #header = next(fl1)
        i = 0
        for line in fl1:
            #line = re.sub('[\r\n\f ]{1,}', '', line)
            if i> 1:
                list1.append(line)
                id = line[0]
                if id in dict2.keys() and dict2[id][4] == group:
                    dict3.setdefault(id,{})
                    dict3[id]['name'] = dict2[id][0]
                    dict3[id]['phone'] = dict2[id][2]
                    dict3[id]['unit'] = dict2[id][1]
                    dict3[id]['nick'] = dict2[id][3]
                    dict3[id]['sc'] = line[6]                    
            i +=1

list1 = []
for k, v in dict3.items():
    list2 = []
    if 'dk' in v.keys():
        dk = v['dk']
    else:
        dk = 0
    if 'sc' in v.keys():
        sc = v['sc']
    else:
        sc = ''
    list2 = [k,v['name'],v['phone'],v['unit'],dk,sc]
    list1.append(list2)
title = ['昵称','姓名','手机号','部门','打卡次数','累计学习时长']
filename = 'data/交警支队学习情况表221018.xlsx'
wb = openpyxl.Workbook()
sheet = wb.active
sheet.append(title)
for row in list1:
    sheet.append(row)
    
wb.save(filename)         

核对新增人员

In [75]:
import openpyxl
import json
import os
import glob
import csv
import re

filename = 'data/交警支队小鹅通信息221010.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl) 

dict2 = {}
for k, v in dict1.items():
    if 'id' in v.keys():
        dict2[v['id']] = [v['name'],v['unit'],k,v['nick'],v['group']] 
        
dict3 = {}    
fi_path = 'data/交警支队/打卡/'
fl = glob.glob(f'{fi_path}*.csv')
list1 = []
for fn in fl:
    with open(fn,'r',newline='') as csv_file:
        fl1 = csv.reader(csv_file,delimiter=',')
        group = re.findall(r'百日筑基-(.+)》',fn)[0]
        header = next(fl1)
        for line in fl1:
            #line = re.sub('[\r\n\f ]{1,}', '', line)
            id = line[0]
            num = line[10]
            #print(id,num)
            if id not in dict2.keys():
                dict3.setdefault(id,{})
                dict3[id]['name'] = line[4]
                dict3[id]['phone'] = line[5]
                dict3[id]['nick'] = line[1]
                
fi_path = 'data/交警支队/时长/'
fl = glob.glob(f'{fi_path}*.csv')

list1 = []
for fn in fl:
    with open(fn,'r',newline='',encoding='gb18030') as csv_file:
        fl1 = csv.reader(csv_file,delimiter=',')
        group = re.findall(r'《(.+)》',fn)[0]
        #header = next(fl1)
        i = 0
        for line in fl1:
            #line = re.sub('[\r\n\f ]{1,}', '', line)
            if i> 1:
                
                id = line[0]
                if id not in dict2.keys():
                    dict3.setdefault(id,{})
                    dict3[id]['name'] = line[10]
                    dict3[id]['phone'] = line[11]
                    dict3[id]['nick'] = line[1]                 
            i +=1
#print(dict3)
for k, v in dict3.items():
    phone = re.sub('[\r\n\f\t ]{1,}', '',v['phone'])
    if phone in dict1.keys():
        dict1[phone]['id'] = k
        dict1[phone]['nick'] = v['nick'] 
        dict1[phone]['user'] = v['name']
    else:
        list1.append([k,v['name'],v['nick'],phone])
filename = 'data/交警支队小鹅通信息221018.json'
with open(filename, 'w') as fl:
    json.dump(dict1, fl, ensure_ascii=False)

title = ['id','姓名','昵称','手机号']
filename = 'data/新增人员表221018.xlsx'
wb = openpyxl.Workbook()
sheet = wb.active
sheet.append(title)
for row in list1:
    sheet.append(row)
    
wb.save(filename)         
print('ok')
ok
In [57]:
import openpyxl
import json
import os
import glob
import csv
import re

filename = 'data/交警支队小鹅通信息221010.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl) 
dict2 = {}
for k, v in dict1.items():
    if 'id' in v.keys():
        dict2[v['id']] = [v['name'],v['unit'],k,v['nick'],v['group']] 
dict3 = {}    
fi_path = 'data/交警支队/打卡/'
fl = glob.glob(f'{fi_path}*.csv')
list1 = []
for fn in fl:
    with open(fn,'r',newline='') as csv_file:
        fl1 = csv.reader(csv_file,delimiter=',')
        group = re.findall(r'百日筑基-(.+)》',fn)[0]
        header = next(fl1)
        for line in fl1:
            #line = re.sub('[\r\n\f ]{1,}', '', line)
            id = line[0]
            num = line[10]
            #print(id,num)
            if id not in dict2.keys():
                dict3.setdefault(id,{})
                dict3[id]['name'] = line[4]
                dict3[id]['phone'] = line[5]
                dict3[id]['nick'] = line[1]
                
fi_path = 'data/交警支队/时长/'
fl = glob.glob(f'{fi_path}*.csv')

list1 = []
for fn in fl:
    with open(fn,'r',newline='',encoding='gb18030') as csv_file:
        fl1 = csv.reader(csv_file,delimiter=',')
        group = re.findall(r'《(.+)》',fn)[0]
        #header = next(fl1)
        i = 0
        for line in fl1:
            #line = re.sub('[\r\n\f ]{1,}', '', line)
            if i> 1:
                
                id = line[0]
                if id not in dict2.keys():
                    dict3.setdefault(id,{})
                    dict3[id]['name'] = line[10]
                    dict3[id]['phone'] = line[11]
                    dict3[id]['nick'] = line[1]                 
            i +=1
i = 1
#print(dict3)
for k, v in dict3.items():
    phone = re.sub('[\r\n\f\t ]{1,}', '',v['phone'])
    if phone not in dict1.keys():
        #dict1[phone]['id'] = k
        #dict1[phone]['nick'] = v['nick'] 
        #dict1[phone]['user'] = v['name']
        print(i,k,v['nick'], v['name'],phone)
        i+=1
1 u_6173e42182911_TnumhwOZG9 子墨 李文静 13718887655
2 u_6162ec35ad7b7_ey2oOCfUP7 小新卖蜡笔? 高峻超 17860246118
3 u_lp_1663297930_6323e98a33794_jNgzRD 冬日 冬日 
4 u_631899e2ad8f9_MhSqCAUX9R 手机尾号0101用户 伴着幸福的人 13605330101
5 u_6159638142ba1_S9otgjwjX7 宗瑾 宗瑾 18801062497
6 u_5f05c79ebb792_GDNNK8BWSI 奇奇 亓玉芬 15210715398
7 u_lp_1663134862_63216c8e0cf6d_5J5DmF 王青 王青 18615337165
8 u_lp_1663141739_6321876b2363b_S78cx0 霖山听海 霖山听海 
9 u_lp_1663326669_632459cda856f_GjFOVL 淄博最后的ikun 淄博最后的ikun 
10 u_lp_1663413836_6325ae4cbb828_HSEYyB 妮妮 妮妮 13953380271
11 u_lp_1663554446_6327d38ef1069_MD1305 XZJ  
12 u_lp_1664171121_63313c71a0f2f_fDvfoo 枕霞旧友  
13 u_lp_1664546227_6336f5b346d80_TiNiu1 房思春 房思春 
14 u_lp_1664617172_63380ad429dcb_svfFT3 海涛 祝学迎 13581027888
15 u_lp_1665225083_6341517b8211a_qiMkIj 阳光zj 阳光zj 13969307666
16 u_lp_1665641415_6347abc77a7ef_yV6Wox 董凯 董凯 13806481277
17 u_6319e7da6947f_GN6dmtH3ed 左登峰 左登峰 13964365877
18 u_lp_1663369088_6324ff80bc705_NgNTWu 我爱我家  
19 u_lp_1663406890_6325932a5caff_2RIkq2 祁河成 祁河成 
20 u_lp_1663136362_6321726a8403d_Ht7c9d 王洪珍 王洪珍 
21 u_6322e3966d41b_rVdSm1pZXH 驀然回首 驀然回首 15953356111
22 u_6325217365e69_WctQcZFuHb 张红海 张红海 13508951662
23 u_lp_1662620239_6319924fdf4a4_pB11t3 刘军  
24 u_lp_1663136658_6321739213909_ttFs3c 朱红霞 朱红霞 
25 u_lp_1661481758_6308331eaba3a_TQ1j6B 交警  翟峰 交警  翟峰 
26 u_lp_1663138780_63217bdc3fd19_e8t54f 顺其自然2  
27 u_lp_1663139478_63217e96c3954_EZvqh2 ???? ???? 
28 u_lp_1664611559_6337f4e73b030_R1Og5Q ???? ???? 13287063721
29 u_633666862f1b1_XU3mwbtuGf 淬剑  
30 u_lp_1663119922_632132323da11_n9FmTv 王丽君 王丽君 13475518973
31 u_lp_1663124329_63214369d8508_N2CO9q 于立霞 于立霞 13953320629
32 u_lp_1663141198_6321854e76c00_Ab89tb 邓立群 邓立群 
33 u_lp_1663141485_6321866daf613_4NCc9M 耿晓龙 耿晓龙 
34 u_lp_1663329993_632466c92bc76_uSmR9Q 孔晓晖  
35 u_lp_1663551502_6327c80ec1d59_LP3Qr5 梦想成真 梦想成真 15264337301
36 u_lp_1663634037_63290a75694c9_cbt0Ld 王维军 快乐先行 13869376228
37 u_lp_1663649808_63294810ce3fd_UEPrNX 刘浩 刘浩 
38 u_lp_1663722388_632a6394b6954_7SupvO 李传生 李传生 13806431511
39 u_lp_1664653781_633899d5b97fb_LBp28e 淡若悠然  
40 u_lp_1661486861_6308470de5d47_QzgTmI 张俊杰 张俊杰 13655339406
41 u_lp_1664162704_63311b90e964c_jPlmpl 童保华  
42 u_lp_1665036891_633e725b684d3_hsCm37 刘进  
43 u_lp_1663142645_63218af5905c5_gqmABq 靥暖  
44 u_lp_1663225682_6322cf52dde88_qbC3Rs 许志国  
45 u_lp_1663295972_6323e1e4caea7_fc1HXu 于会萍  
46 u_lp_1663325439_632454ff8b99b_DrUT6S 孙孝伟  
47 u_lp_1663555784_6327d8c8c9e25_cLIVK4 便士 便士 
48 u_lp_1663577491_63282d93ea1e9_JDfOU8 王青海 王青海 
49 u_lp_1663663112_63297c08977aa_7gPZEP 车西冬  

导出无手机号码人员

In [ ]:
import json
filename = 'data/交警支队名单221010.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl) 

for k, v in dict1.items():
    if 'phone' not in v.keys():
        print(v['name'],v['unit'])

人员部门调整

In [ ]:
import openpyxl
import json

wb = openpyxl.load_workbook('data/新部门排序-淄博交警支队人员名单 _56473.xlsx')
sheet = wb.active
# sheets = wb.sheetnames
dict2 = {}

data1 =list(sheet.values)
del data1[0]
for item in data1:
    phone = item[4]
    dict2[phone] = [item[1],item[0]]
#print(dict2)
dict3 = {}
filename = 'data/交警支队小鹅通信息.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl) 
for k, v in dict1.items():
    if k not in dict2.keys():
        print(k,dict1[k]['name'])
#with open(filename, 'w') as fl:
#    json.dump(person, fl, ensure_ascii=False)
#print('ok')

核对分组人员情况

In [ ]:
import json
import csv

filename = 'data/交警支队手机号码221010.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl) 
    
filename = 'data/交警支队分组情况.csv'
with open(filename,'r',newline='') as csv_file:
    fl = csv.reader(csv_file,delimiter=',')
    header = next(fl)    
    for line in fl:
        phone = line[9]
        group = line[1]
        if phone not in dict1.keys():
            print(line[2],line[9],line[3])

核对小鹅通人员

In [ ]:
import json
import csv

filename = 'data/交警支队手机号码221010.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl) 

filename = 'data/小鹅通人员信息221010.json'
with open(filename,'r') as fl:
    dict2 = json.load(fl) 
    
for k, v in dict2.items():
    phone = v['phone']
    if phone not in dict1.keys():
        print(k,v['nick'],v['name'],phone)
    

核对存在多组人员

In [ ]:
import json
import os
import glob
import csv
import re

fi_path = 'data/交警支队/时长/'
fl = glob.glob(f'{fi_path}*.csv')

list1 = []
dict1 = {}
for fn in fl:
    with open(fn,'r',newline='',encoding='gb18030') as csv_file:
        fl1 = csv.reader(csv_file,delimiter=',')
        zb = fn.split('-')[3]
        #header = next(fl1)
        i = 0
        for line in fl1:
            #line = re.sub('[\r\n\f ]{1,}', '', line)
            if i> 1:
                m_id = line[0]
                dict1.setdefault(m_id,[])
                dict1[m_id].append(zb)
                #list1.append(line)
            i +=1
filename = 'data/交警支队小鹅通信息.json'
with open(filename,'r') as fl:
    dict2 = json.load(fl) 
dict3 = {}
for k ,v in dict2.items():
    if 'id' in v.keys():
        dict3[v['id']] = [k,v['name'],v['unit'],v['nick']]

for k, v in dict1.items():
    if k in dict3.keys():
        if len(v)>1:
            print(dict3[k][1],dict3[k][2],dict3[k][0],v)
        
        

修改json内容

In [ ]:
import json


filename = 'data/交警支队名单221010.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl) 
i = 0
for k, v in dict1.items():
    if v['unit'] == '支高新区大队':
        dict1[k]['unit'] = '高新区大队'
        i +=1
with open(filename,'w') as fl:
    json.dump(dict1, fl,ensure_ascii=False)        
    
print(f'共有{i}条记录被修改')
In [ ]: