This commit is contained in:
512song@sina.com committed 2022-10-02 15:10:40 +08:00
1 parent d7b37d117d
commit ed2a70896c
3 files changed
+382 -72

No files matched your search

+176 -51
View File
@@ -103,6 +103,83 @@
"print('ok')"
]
},
{
"cell_type": "markdown",
"id": "234d9b71-f99e-48cb-af9b-151bbf3f1715",
"metadata": {},
"source": [
"### 人员分组"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "9aaa35a7-13e2-4ece-a9fd-931ad00e89d3",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"import json\n",
"import csv\n",
"\n",
"filename = 'data/交警支队名单1.json'\n",
"with open(filename,'r') as fl:\n",
" dict1 = json.load(fl) \n",
" \n",
"filename = 'data/交警支队分组情况.csv'\n",
"with open(filename,'r',newline='') as csv_file:\n",
" fl = csv.reader(csv_file,delimiter=',')\n",
" header = next(fl) \n",
" for line in fl:\n",
" code = line[0]\n",
" group = line[1]\n",
" if code in dict1.keys():\n",
" dict1[code]['group'] = group\n",
"\n",
"filename = 'data/交警支队名单1.json'\n",
"with open(filename,'w') as fl:\n",
" json.dump(dict1, fl,ensure_ascii=False) "
]
},
{
"cell_type": "markdown",
"id": "421723e5-6102-4dae-bae8-39e58efc427d",
"metadata": {},
"source": [
"#### 关联人员分组至小鹅通"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e5737104-ac16-4529-b12b-a32b80f9d040",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"import json\n",
"import csv\n",
"\n",
"filename = 'data/交警支队名单1.json'\n",
"with open(filename,'r') as fl:\n",
" dict1 = json.load(fl) \n",
"\n",
"filename = 'data/交警支队小鹅通信息.json'\n",
"with open(filename,'r') as fl:\n",
" dict2 = json.load(fl) \n",
"\n",
"for k, v in dict1.items():\n",
" if 'phone' in v.keys() and 'group' in v.keys():\n",
" phone = v['phone']\n",
" if phone in dict2.keys():\n",
" dict2[phone]['group'] = v['group']\n",
"\n",
"with open(filename,'w') as fl:\n",
" json.dump(dict2, fl,ensure_ascii=False) "
]
},
{
"cell_type": "markdown",
"id": "c61f18ab-7411-44d4-9741-3dd50283f4bb",
@@ -167,11 +244,11 @@
"import openpyxl\n",
"import json\n",
"\n",
"filename = 'data/小鹅通人员信息.json'\n",
"filename = 'data/交警支队小鹅通信息.json'\n",
"with open(filename,'r') as fl:\n",
" dict2 = json.load(fl) \n",
"\n",
"wb = openpyxl.load_workbook('data/交警支队小鹅通中手机信息存在问题用户(修正).xlsx')\n",
"wb = openpyxl.load_workbook('data/交警支队小鹅通中手机信息存在问题用户(修正)0930.xlsx')\n",
"sheet = wb.active\n",
"# sheets = wb.sheetnames\n",
"\n",
@@ -180,7 +257,10 @@
" break\n",
" else:\n",
" phone = sheet.cell(n, 4).value\n",
" dict2[sheet.cell(n, 1).value]['phone'] = phone\n",
" if phone in dict2.keys():\n",
" dict2[phone]['id'] = sheet.cell(n, 1).value\n",
" dict2[phone]['nick'] = sheet.cell(n, 2).value\n",
" dict2[phone]['user'] = sheet.cell(n, 3).value\n",
"\n",
"with open(filename, 'w') as fl:\n",
" json.dump(dict2, fl, ensure_ascii=False)\n",
@@ -303,6 +383,64 @@
" json.dump(dict1, fl,ensure_ascii=False) "
]
},
{
"cell_type": "markdown",
"id": "ab95da60-39b7-4c6b-9ef1-9a1d5d8cccc4",
"metadata": {},
"source": [
"### 核对存在多组人员"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "65ef74b4-4667-422c-b610-63b517edd75d",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"import json\n",
"import os\n",
"import glob\n",
"import csv\n",
"import re\n",
"\n",
"fi_path = 'data/交警支队/时长/'\n",
"fl = glob.glob(f'{fi_path}*.csv')\n",
"\n",
"list1 = []\n",
"dict1 = {}\n",
"for fn in fl:\n",
" with open(fn,'r',newline='',encoding='gb18030') as csv_file:\n",
" fl1 = csv.reader(csv_file,delimiter=',')\n",
" zb = fn.split('-')[3]\n",
" #header = next(fl1)\n",
" i = 0\n",
" for line in fl1:\n",
" #line = re.sub('[\\r\\n\\f ]{1,}', '', line)\n",
" if i> 1:\n",
" m_id = line[0]\n",
" dict1.setdefault(m_id,[])\n",
" dict1[m_id].append(zb)\n",
" #list1.append(line)\n",
" i +=1\n",
"filename = 'data/交警支队小鹅通信息.json'\n",
"with open(filename,'r') as fl:\n",
" dict2 = json.load(fl) \n",
"dict3 = {}\n",
"for k ,v in dict2.items():\n",
" if 'id' in v.keys():\n",
" dict3[v['id']] = [k,v['name'],v['unit'],v['nick']]\n",
"\n",
"for k, v in dict1.items():\n",
" if k in dict3.keys():\n",
" if len(v)>1:\n",
" print(dict3[k][1],dict3[k][2],dict3[k][0],v)\n",
" \n",
" "
]
},
{
"cell_type": "markdown",
"id": "dc856c16-3ff0-4c24-a5ee-062129698e08",
@@ -313,27 +451,19 @@
},
{
"cell_type": "code",
"execution_count": 92,
"execution_count": 128,
"id": "c1a5aaef-70be-4fd2-9384-983aeb59f491",
"metadata": {
"execution": {
"iopub.execute_input": "2022-09-29T12:20:48.500293Z",
"iopub.status.busy": "2022-09-29T12:20:48.499768Z",
"iopub.status.idle": "2022-09-29T12:20:48.627177Z",
"shell.execute_reply": "2022-09-29T12:20:48.626065Z",
"shell.execute_reply.started": "2022-09-29T12:20:48.500245Z"
"iopub.execute_input": "2022-09-30T15:16:00.175939Z",
"iopub.status.busy": "2022-09-30T15:16:00.175417Z",
"iopub.status.idle": "2022-09-30T15:16:00.308873Z",
"shell.execute_reply": "2022-09-30T15:16:00.307748Z",
"shell.execute_reply.started": "2022-09-30T15:16:00.175891Z"
},
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['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']\n"
]
}
],
"outputs": [],
"source": [
"import json\n",
"import os\n",
@@ -347,56 +477,51 @@
"dict2 = {}\n",
"for k, v in dict1.items():\n",
" if 'id' in v.keys():\n",
" dict2[v['nick']] = [v['name'],v['unit'],k] \n",
" dict2[v['id']] = [v['name'],v['unit'],k,v['nick'],v['group']] \n",
"dict3 = {} \n",
"fi_path = 'data/交警支队/'\n",
"fi_path = 'data/小鹅通/'\n",
"fl = glob.glob(f'{fi_path}*.csv')\n",
"list1 = []\n",
"for fn in fl:\n",
" with open(fn,'r',newline='',encoding='gbk') as csv_file:\n",
" with open(fn,'r',newline='') as csv_file:\n",
" fl1 = csv.reader(csv_file,delimiter=',')\n",
" #header = next(fl1)\n",
" i = 0\n",
" for line in fl1:\n",
" #line = re.sub('[\\r\\n\\f ]{1,}', '', line)\n",
" if i> 1:\n",
" list1.append(line)\n",
" i +=1\n",
"for item in list1:\n",
" name = item.pop(0)\n",
" num = item.count('√')\n",
" if name in dict2.keys():\n",
" dict3.setdefault(name,{})\n",
" dict3[name]['name'] = dict2[name][0]\n",
" dict3[name]['phone'] = dict2[name][2]\n",
" dict3[name]['unit'] = dict2[name][1]\n",
" if 'dk' in dict3[name].keys():\n",
" dict3[name]['dk'] = num + dict3[name]['dk']\n",
" else:\n",
" dict3[name]['dk'] = num\n",
" header = next(fl1)\n",
" for line in fl1: \n",
" id = line[0]\n",
" num = line[10]\n",
" #print(id,num)\n",
" if id in dict2.keys():\n",
" dict3.setdefault(id,{})\n",
" dict3[id]['name'] = dict2[id][0]\n",
" dict3[id]['phone'] = dict2[id][2]\n",
" dict3[id]['unit'] = dict2[id][1]\n",
" dict3[id]['nick'] = dict2[id][3]\n",
" dict3[id]['dk'] = num\n",
"\n",
"fi_path = 'data/交警支队/时长/'\n",
"fl = glob.glob(f'{fi_path}*.csv')\n",
"print(fl)\n",
"\n",
"list1 = []\n",
"for fn in fl:\n",
" with open(fn,'r',newline='',encoding='gb18030') as csv_file:\n",
" fl1 = csv.reader(csv_file,delimiter=',')\n",
" group = re.findall(r'《(.+)》',fn)[0]\n",
" #header = next(fl1)\n",
" i = 0\n",
" for line in fl1:\n",
" #line = re.sub('[\\r\\n\\f ]{1,}', '', line)\n",
" if i> 1:\n",
" list1.append(line)\n",
" id = line[0]\n",
" if id in dict2.keys() and dict2[id][4] == group:\n",
" dict3.setdefault(id,{})\n",
" dict3[id]['name'] = dict2[id][0]\n",
" dict3[id]['phone'] = dict2[id][2]\n",
" dict3[id]['unit'] = dict2[id][1]\n",
" dict3[id]['nick'] = dict2[id][3]\n",
" dict3[id]['sc'] = line[2] \n",
" i +=1\n",
"for item in list1:\n",
" name = item[1]\n",
" num = item[2].strip()\n",
" if name in dict2.keys():\n",
" dict3.setdefault(name,{})\n",
" dict3[name]['name'] = dict2[name][0]\n",
" dict3[name]['phone'] = dict2[name][2]\n",
" dict3[name]['unit'] = dict2[name][1]\n",
" dict3[name]['sc'] = num \n",
"\n",
"list1 = []\n",
"for k, v in dict3.items():\n",
" list2 = []\n",
@@ -411,7 +536,7 @@
" list2 = [k,v['name'],v['phone'],v['unit'],dk,sc]\n",
" list1.append(list2)\n",
"title = ['昵称','姓名','手机号','部门','打卡次数','累计学习时长']\n",
"filename = 'data/交警支队学习情况表.xlsx'\n",
"filename = 'data/交警支队学习情况表1.xlsx'\n",
"wb = openpyxl.Workbook()\n",
"sheet = wb.active\n",
"sheet.append(title)\n",