Files
jupyter/体测单位/淄博交警支队.ipynb
T
2022-10-10 15:05:49 +08:00

23 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
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 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
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 in dict1.keys():
            
            dict1[phone]['group'] = group

filename = 'data/交警支队小鹅通信息221010.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) 
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 [193]:
import openpyxl
import json

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

wb = openpyxl.load_workbook('data/交警支队小鹅通中手机信息存在问题用户(修正)1010.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, 2).value
            dict2[phone]['user'] = sheet.cell(n, 3).value

with open(filename, 'w') as fl:
    json.dump(dict2, fl, ensure_ascii=False)
print('ok')
ok

小鹅通人员信息关联

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 [ ]:
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 dict1.items():
    if 'phone' in v.keys() and 'group' in v.keys():
        phone = v['phone']
        if phone in dict2.keys():
            dict2[phone]['group'] = v['group']

with open(filename,'w') as fl:
    json.dump(dict2, fl,ensure_ascii=False)         

导出无手机号码人员

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 [194]:
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='',encoding='gb18030') as csv_file:
        fl1 = csv.reader(csv_file,delimiter=',')
        header = next(fl1)
        for line in fl1:            
            id = line[0]
            num = line[10]
            #print(id,num)
            if id in dict2.keys():
                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/交警支队学习情况表221010.xlsx'
wb = openpyxl.Workbook()
sheet = wb.active
sheet.append(title)
for row in list1:
    sheet.append(row)
    
wb.save(filename)         

核对分组人员情况

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 [190]:
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)
    
u_6300b868354b7_fhNgUKdQgZ 张蓬 张蓬 
u_lp_1663297930_6323e98a33794_jNgzRD 冬日 冬日 
u_6300b839aa6b3_JzU0z9mMAy 黄明顺 黄明顺 
u_6300b7d711a32_V5eLaqp2rv 孟令强 孟令强 13656435666
u_632274c592a5f_uEtoa2t8L4 王毅 王毅 13853371118
u_6300b790a0ff7_iVHWce6Il4 博山大队卢娟 卢娟 
u_6300b7d4bc5a0_ayO3NftEDA 手机尾号3202用户  
u_6300b7f190dfa_B4wGouLgY8 手机尾号6627用户 不忘初心 13805333711
u_lp_1663210667_632294ab14915_juLjGd 王晶 王晶 
u_lp_1663230904_6322e3b86ac92_wcTVgm 志行远野 郑志远 
u_631899e2ad8f9_MhSqCAUX9R 手机尾号0101用户 伴着幸福的人 13605330101
u_lp_1663655054_63295c8e069ef_J3IzYt 胡钰 胡钰 
u_6300b85963d1e_zQEFOZPIp3 吕元东 吕元东 
u_6300b855855a2_Wx4LEvcB2o 手机尾号6607用户 朱双三 
u_lp_1663327661_63245dad5f702_I8JfuY 任振华  
u_6300b8afc9257_mQ2JVzYyNX 张艳 张艳 13864333088
u_6300b8ca95f42_m9uh26AitM 朱勤东 朱勤东 13953382936
u_6300b888d3aac_O39r6KCeML 王勇威 王勇威 
u_lp_1663656013_6329604d16842_DHrc16 石鑫 石鑫 13583336118
u_lp_1663124568_63214458327d4_lgwfCh 王欣怡 王欣怡 
u_6300b8a21e3fe_zWo6UFSjrS 宗力 宗力 
u_lp_1663138566_63217b06daf80_S7mJ25 薛林 薛林 18615331777

核对存在多组人员

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