Files
jupyter/体测单位/淄博交警支队.ipynb
T
2022-09-29 21:23:30 +08:00

14 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/交警支队名单.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/排序-淄博交警支队人员名单 _56473.xlsx')
sheet = wb.active
# sheets = wb.sheetnames
person = {}
for n in range(3, 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/交警支队手机号码.json'
with open(filename, 'w') as fl:
    json.dump(person, fl, ensure_ascii=False)
print('ok')

关联人员手机号码

In [ ]:
import json

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

修正人员信息

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

for n in range(2, sheet.max_row+1):
    if sheet.cell(n,1).value is None:
        break
    else:
        phone = sheet.cell(n, 4).value
        dict2[sheet.cell(n, 1).value]['phone'] = phone

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

小鹅通人员信息关联

In [ ]:
import json
filename = 'data/交警支队名单1.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/小鹅通人员信息.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/交警支队小鹅通信息.json'
with open(filename, 'w') as fl:
    json.dump(dict2, fl, ensure_ascii=False)
print('ok')   

导出无手机号码人员

In [ ]:
import json
filename = 'data/交警支队名单1.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 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='') 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/小鹅通人员信息.json'
with open(filename,'w') as fl:
    json.dump(dict1, fl,ensure_ascii=False) 

打卡信息导入

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

filename = 'data/交警支队小鹅通信息.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['nick']] = [v['name'],v['unit'],k] 
dict3 = {}    
fi_path = 'data/交警支队/'
fl = glob.glob(f'{fi_path}*.csv')
list1 = []
for fn in fl:
    with open(fn,'r',newline='',encoding='gbk') as csv_file:
        fl1 = csv.reader(csv_file,delimiter=',')
        #header = next(fl1)
        i = 0
        for line in fl1:
            #line = re.sub('[\r\n\f ]{1,}', '', line)
            if i> 1:
                list1.append(line)
            i +=1
for item in list1:
    name = item.pop(0)
    num = item.count('√')
    if name in dict2.keys():
        dict3.setdefault(name,{})
        dict3[name]['name'] = dict2[name][0]
        dict3[name]['phone'] = dict2[name][2]
        dict3[name]['unit'] = dict2[name][1]
        if 'dk' in dict3[name].keys():
            dict3[name]['dk'] = num + dict3[name]['dk']
        else:
            dict3[name]['dk'] = num
fi_path = 'data/交警支队/时长/'
fl = glob.glob(f'{fi_path}*.csv')
print(fl)
list1 = []
for fn in fl:
    with open(fn,'r',newline='',encoding='gb18030') as csv_file:
        fl1 = csv.reader(csv_file,delimiter=',')
        #header = next(fl1)
        i = 0
        for line in fl1:
            #line = re.sub('[\r\n\f ]{1,}', '', line)
            if i> 1:
                list1.append(line)
            i +=1
for item in list1:
    name = item[1]
    num = item[2].strip()
    if name in dict2.keys():
        dict3.setdefault(name,{})
        dict3[name]['name'] = dict2[name][0]
        dict3[name]['phone'] = dict2[name][2]
        dict3[name]['unit'] = dict2[name][1]
        dict3[name]['sc'] = num  
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/交警支队学习情况表.xlsx'
wb = openpyxl.Workbook()
sheet = wb.active
sheet.append(title)
for row in list1:
    sheet.append(row)
    
wb.save(filename)         
['data/交警支队/时长/2022-09-29-《气虚组》-视频学习详情_085022.csv', 'data/交警支队/时长/2022-09-28-《阳虚组》-视频学习详情_162739.csv', 'data/交警支队/时长/2022-09-29-《阴虚组》-视频学习详情_084653.csv', 'data/交警支队/时长/2022-09-28-《气郁组》-视频学习详情_155229.csv', 'data/交警支队/时长/2022-09-29-《痰湿组》-视频学习详情_084809.csv', 'data/交警支队/时长/2022-09-28-《血瘀组》-视频学习详情_163202.csv', 'data/交警支队/时长/2022-09-28-《特禀组》-视频学习详情_162914.csv', 'data/交警支队/时长/2022-09-29-《平和组》-视频学习详情_085511.csv', 'data/交警支队/时长/2022-09-29-《湿热组》-视频学习详情_084926.csv']

学习时长信息导入

In [ ]: