20230322
This commit is contained in:
1 parent
045d2f61d5
commit
1000a8f2ea
1 file changed
+442
-47
+442
-47
@@ -4,7 +4,8 @@
|
|||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "4b749231-7ab9-4dcd-8cfd-7b9be485d3c6",
|
"id": "4b749231-7ab9-4dcd-8cfd-7b9be485d3c6",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"tags": []
|
"tags": [],
|
||||||
|
"toc-hr-collapsed": true
|
||||||
},
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"## 低碳院人员信息对应关系及导出"
|
"## 低碳院人员信息对应关系及导出"
|
||||||
@@ -87,6 +88,7 @@
|
|||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "2494ff3b-f52f-4933-9879-1b47857d8c67",
|
"id": "2494ff3b-f52f-4933-9879-1b47857d8c67",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
|
"jp-MarkdownHeadingCollapsed": true,
|
||||||
"tags": []
|
"tags": []
|
||||||
},
|
},
|
||||||
"source": [
|
"source": [
|
||||||
@@ -282,6 +284,7 @@
|
|||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "231a0872-34ac-4121-870e-ba398a158576",
|
"id": "231a0872-34ac-4121-870e-ba398a158576",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
|
"jp-MarkdownHeadingCollapsed": true,
|
||||||
"tags": []
|
"tags": []
|
||||||
},
|
},
|
||||||
"source": [
|
"source": [
|
||||||
@@ -347,6 +350,7 @@
|
|||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "0bef4bd3-99e8-4a2d-a418-77f832b1254a",
|
"id": "0bef4bd3-99e8-4a2d-a418-77f832b1254a",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
|
"jp-MarkdownHeadingCollapsed": true,
|
||||||
"tags": []
|
"tags": []
|
||||||
},
|
},
|
||||||
"source": [
|
"source": [
|
||||||
@@ -399,6 +403,7 @@
|
|||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "b1462a26-59f8-4e5f-8fb9-d927059e0747",
|
"id": "b1462a26-59f8-4e5f-8fb9-d927059e0747",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
|
"jp-MarkdownHeadingCollapsed": true,
|
||||||
"tags": []
|
"tags": []
|
||||||
},
|
},
|
||||||
"source": [
|
"source": [
|
||||||
@@ -426,11 +431,23 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "bb3448ff-a8d3-417d-ab3a-4b54e28aaca0",
|
"id": "bb3448ff-a8d3-417d-ab3a-4b54e28aaca0",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"jp-MarkdownHeadingCollapsed": true,
|
||||||
|
"tags": [],
|
||||||
|
"toc-hr-collapsed": true
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"## 2023年体测情况"
|
"## 2023年体测情况"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "4e7af531-758b-477b-a181-21080c83b44c",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": []
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "d7ad01ef-93c3-4735-b609-bb5d38f85a25",
|
"id": "d7ad01ef-93c3-4735-b609-bb5d38f85a25",
|
||||||
@@ -545,7 +562,10 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "9ba6ea9a-28f5-43c7-9dd7-74a626838303",
|
"id": "9ba6ea9a-28f5-43c7-9dd7-74a626838303",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"jp-MarkdownHeadingCollapsed": true,
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"### 统计2022年问卷人员信息"
|
"### 统计2022年问卷人员信息"
|
||||||
]
|
]
|
||||||
@@ -748,7 +768,10 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "d3c7b93b-d132-4de4-a4f1-687b36d06b6d",
|
"id": "d3c7b93b-d132-4de4-a4f1-687b36d06b6d",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"jp-MarkdownHeadingCollapsed": true,
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"### 统计2023年体测人员邮箱信息"
|
"### 统计2023年体测人员邮箱信息"
|
||||||
]
|
]
|
||||||
@@ -1006,14 +1029,60 @@
|
|||||||
"filename = 'data/低碳院邮件信息.json'\n",
|
"filename = 'data/低碳院邮件信息.json'\n",
|
||||||
"with open(filename,'r') as fl:\n",
|
"with open(filename,'r') as fl:\n",
|
||||||
" dict1 = json.load(fl)\n",
|
" dict1 = json.load(fl)\n",
|
||||||
|
"print(dict1)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"id": "fea20fa1-4cd3-4528-a7d1-dbce05e34fe4",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"### 根据字典生成邮件列表"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "2310dda9-01cb-43a0-a1db-36f37deb35a4",
|
||||||
|
"metadata": {
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"import json\n",
|
||||||
|
"import glob\n",
|
||||||
|
"import os\n",
|
||||||
|
"\n",
|
||||||
|
"dict1 = {\n",
|
||||||
|
" '494': {'name': '王永涛', 'email': '20087867@ceic.com'}, \n",
|
||||||
|
" '497': {'name': '王婧', 'email': '20084082@chnenergy.com.cn'}, \n",
|
||||||
|
" '499': {'name': '孙华宇', 'email': '20086856@chnenergy.com.cn'}, \n",
|
||||||
|
" '500': {'name': '贾建慧', 'email': '20084081@chnenergy.com.cn'}, \n",
|
||||||
|
" '501': {'name': '郝国政', 'email': '20084079@chnenergy.com.cn'}, \n",
|
||||||
|
" '502': {'name': '崔双双', 'email': '20084083@chnenergy.com.cn'}, \n",
|
||||||
|
" '503': {'name': '赵振慧', 'email': '11234518@chnenergy.com.cn'}, \n",
|
||||||
|
" '504': {'name': '刘静远', 'email': '20084080@chnenergy.com.cn'}, \n",
|
||||||
|
" '505': {'name': '陆斌', 'email': '20087351@ceic.com'}, \n",
|
||||||
|
" '506': {'name': '杜鹏', 'email': '12080316@chnenergy.com.cn'}, \n",
|
||||||
|
" '507': {'name': '赵亮亮', 'email': '20086857@chnenergy.com.cn'}, \n",
|
||||||
|
" '508': {'name': '张文秀', 'email': 'zhangwenxiu@nicenergy.com'}\n",
|
||||||
|
"}\n",
|
||||||
"dict2 = {}\n",
|
"dict2 = {}\n",
|
||||||
"fls = glob.glob('file/139/2023-03-08/*.pdf')\n",
|
"fls = glob.glob('file/139/2022-12-31/*.pdf')\n",
|
||||||
"for fi in fls:\n",
|
"for fi in fls:\n",
|
||||||
" bh = os.path.basename(fi).split('.')[0]\n",
|
" bh = os.path.basename(fi).split('.')[0]\n",
|
||||||
" if bh in dict1.keys() and 'email' not in dict1[bh].keys():\n",
|
" if bh in dict1.keys() and 'email' in dict1[bh].keys():\n",
|
||||||
" #print(bh,dict1[bh]['name'],dict1[bh]['email'])\n",
|
" #print(bh,dict1[bh]['name'],dict1[bh]['email'])\n",
|
||||||
" print(bh,dict1[bh]['name'])\n",
|
" #print(bh,dict1[bh]['name'])\n",
|
||||||
" "
|
" dict2.setdefault(bh,{})\n",
|
||||||
|
" dict2[bh]['name'] = dict1[bh]['name']\n",
|
||||||
|
" dict2[bh]['email'] = dict1[bh]['email']\n",
|
||||||
|
" dict2[bh]['file'] = fi\n",
|
||||||
|
"#print(len(dict2))\n",
|
||||||
|
"filename = 'data/低碳院邮件列表(新增).json'\n",
|
||||||
|
"with open(filename, 'w') as fl:\n",
|
||||||
|
" json.dump(dict2, fl, ensure_ascii=False)\n",
|
||||||
|
"print('ok')"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1053,7 +1122,7 @@
|
|||||||
"import json\n",
|
"import json\n",
|
||||||
" \n",
|
" \n",
|
||||||
"\n",
|
"\n",
|
||||||
"filename = 'data/低碳院邮件列表.json'\n",
|
"filename = 'data/低碳院邮件列表(新增).json'\n",
|
||||||
"\n",
|
"\n",
|
||||||
"with open(filename,'r') as fl:\n",
|
"with open(filename,'r') as fl:\n",
|
||||||
" m_xx = json.load(fl)\n",
|
" m_xx = json.load(fl)\n",
|
||||||
@@ -1101,27 +1170,12 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 45,
|
"execution_count": null,
|
||||||
"id": "ec395435-7596-4de8-9f41-f45c0c744c3d",
|
"id": "ec395435-7596-4de8-9f41-f45c0c744c3d",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"execution": {
|
|
||||||
"iopub.execute_input": "2023-03-21T13:37:27.837531Z",
|
|
||||||
"iopub.status.busy": "2023-03-21T13:37:27.836685Z",
|
|
||||||
"iopub.status.idle": "2023-03-21T13:37:27.851993Z",
|
|
||||||
"shell.execute_reply": "2023-03-21T13:37:27.850923Z",
|
|
||||||
"shell.execute_reply.started": "2023-03-21T13:37:27.837490Z"
|
|
||||||
},
|
|
||||||
"tags": []
|
"tags": []
|
||||||
},
|
},
|
||||||
"outputs": [
|
"outputs": [],
|
||||||
{
|
|
||||||
"name": "stdout",
|
|
||||||
"output_type": "stream",
|
|
||||||
"text": [
|
|
||||||
"106\n"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"source": [
|
"source": [
|
||||||
"import json\n",
|
"import json\n",
|
||||||
"import glob\n",
|
"import glob\n",
|
||||||
@@ -1150,29 +1204,12 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 44,
|
"execution_count": null,
|
||||||
"id": "977e29b0-2b3f-4941-b33a-0b3b5ac4aced",
|
"id": "977e29b0-2b3f-4941-b33a-0b3b5ac4aced",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"execution": {
|
|
||||||
"iopub.execute_input": "2023-03-21T13:37:12.258067Z",
|
|
||||||
"iopub.status.busy": "2023-03-21T13:37:12.257187Z",
|
|
||||||
"iopub.status.idle": "2023-03-21T13:37:12.268960Z",
|
|
||||||
"shell.execute_reply": "2023-03-21T13:37:12.267879Z",
|
|
||||||
"shell.execute_reply.started": "2023-03-21T13:37:12.258026Z"
|
|
||||||
},
|
|
||||||
"tags": []
|
"tags": []
|
||||||
},
|
},
|
||||||
"outputs": [
|
"outputs": [],
|
||||||
{
|
|
||||||
"name": "stdout",
|
|
||||||
"output_type": "stream",
|
|
||||||
"text": [
|
|
||||||
"497 王婧\n",
|
|
||||||
"499 孙华宇\n",
|
|
||||||
"502 崔双双\n"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"source": [
|
"source": [
|
||||||
"import json\n",
|
"import json\n",
|
||||||
"import glob\n",
|
"import glob\n",
|
||||||
@@ -1195,7 +1232,9 @@
|
|||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": null,
|
"execution_count": null,
|
||||||
"id": "e8d5cc48-a23d-44d9-9130-6902452d5d18",
|
"id": "e8d5cc48-a23d-44d9-9130-6902452d5d18",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
"from email.mime.text import MIMEText\n",
|
"from email.mime.text import MIMEText\n",
|
||||||
@@ -1209,7 +1248,7 @@
|
|||||||
"import json\n",
|
"import json\n",
|
||||||
" \n",
|
" \n",
|
||||||
"\n",
|
"\n",
|
||||||
"filename = 'data/低碳院邮件列表202212.json'\n",
|
"filename = 'data/低碳院邮件列表(新增).json'\n",
|
||||||
"\n",
|
"\n",
|
||||||
"with open(filename,'r') as fl:\n",
|
"with open(filename,'r') as fl:\n",
|
||||||
" m_xx = json.load(fl)\n",
|
" m_xx = json.load(fl)\n",
|
||||||
@@ -1246,6 +1285,362 @@
|
|||||||
" print (\"Error: 无法发送邮件\")\n",
|
" print (\"Error: 无法发送邮件\")\n",
|
||||||
" "
|
" "
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"id": "b4cb8b9c-f9ad-4a80-a5d6-dff5edb40e79",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"## 百日筑基分析"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"id": "aa0e3dc6-053b-44a8-bbaa-7ec2a7790059",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"### 导入人员信息"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "1eb6ebd0-c78c-4f6d-b3fd-a27e240d216c",
|
||||||
|
"metadata": {
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"import openpyxl\n",
|
||||||
|
"import json\n",
|
||||||
|
"\n",
|
||||||
|
"fi_xls = 'data/低碳院小鹅通人员情况表.xlsx'\n",
|
||||||
|
"list1 = []\n",
|
||||||
|
"dict1 = {}\n",
|
||||||
|
"dict2 = {}\n",
|
||||||
|
"dict3 = {}\n",
|
||||||
|
"wb = openpyxl.load_workbook(fi_xls)\n",
|
||||||
|
"sheet = wb.active\n",
|
||||||
|
"for n in range(2, sheet.max_row+1):\n",
|
||||||
|
" if sheet.cell(n,1).value is None:\n",
|
||||||
|
" break\n",
|
||||||
|
" else: \n",
|
||||||
|
" name = sheet.cell(n, 1).value.strip()\n",
|
||||||
|
" phone = str(sheet.cell(n, 5).value).strip()\n",
|
||||||
|
" #检查手机号码是否有重复\n",
|
||||||
|
" #if phone not in list1:\n",
|
||||||
|
" # list1.append(phone)\n",
|
||||||
|
" #else:\n",
|
||||||
|
" # print(name,phone)\n",
|
||||||
|
" dict1.setdefault(phone,{})\n",
|
||||||
|
" dict1[phone]['name'] = name\n",
|
||||||
|
" dict1[phone]['unit'] = sheet.cell(n, 6).value\n",
|
||||||
|
"filename = 'data/低碳院小鹅通人员信息.json'\n",
|
||||||
|
"with open(filename, 'w') as fl:\n",
|
||||||
|
" json.dump(dict1, fl, ensure_ascii=False)\n",
|
||||||
|
"print('ok')\n",
|
||||||
|
" \n"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"id": "fbd0c055-4d86-4383-9205-5b8888b8c686",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"### 导入小鹅通人员信息 "
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 65,
|
||||||
|
"id": "162e0573-e1c7-4538-bffa-c34eb5b40d8a",
|
||||||
|
"metadata": {
|
||||||
|
"execution": {
|
||||||
|
"iopub.execute_input": "2023-03-22T12:47:26.571739Z",
|
||||||
|
"iopub.status.busy": "2023-03-22T12:47:26.570902Z",
|
||||||
|
"iopub.status.idle": "2023-03-22T12:47:26.591504Z",
|
||||||
|
"shell.execute_reply": "2023-03-22T12:47:26.590497Z",
|
||||||
|
"shell.execute_reply.started": "2023-03-22T12:47:26.571699Z"
|
||||||
|
},
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"import json\n",
|
||||||
|
"import os\n",
|
||||||
|
"import glob\n",
|
||||||
|
"import csv\n",
|
||||||
|
"\n",
|
||||||
|
"fi_path = 'data/小鹅通/'\n",
|
||||||
|
"dict1 = {}\n",
|
||||||
|
"fl = glob.glob(f'{fi_path}*.csv')\n",
|
||||||
|
"list1 = []\n",
|
||||||
|
"for fn in fl:\n",
|
||||||
|
" #with open(fn,'r',newline='',encoding='gb18030') as csv_file:\n",
|
||||||
|
" with open(fn,'r',newline='') as csv_file:\n",
|
||||||
|
" fl1 = csv.reader(csv_file,delimiter=',')\n",
|
||||||
|
" header = next(fl1) \n",
|
||||||
|
" for line in fl1:\n",
|
||||||
|
" #line = re.sub('[\\r\\n\\f ]{1,}', '', line)\n",
|
||||||
|
" list1.append(line)\n",
|
||||||
|
"for item in list1:\n",
|
||||||
|
" dict1.setdefault(item[0],{})\n",
|
||||||
|
" dict1[item[0]]['nick'] = item[1] \n",
|
||||||
|
" dict1[item[0]]['phone'] = item[11].strip()\n",
|
||||||
|
" dict1[item[0]]['progress'] = item[3]\n",
|
||||||
|
"filename = 'data/小鹅通人员信息.json'\n",
|
||||||
|
"with open(filename,'w') as fl:\n",
|
||||||
|
" json.dump(dict1, fl,ensure_ascii=False) "
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"id": "8d9ec0a6-0b4d-456d-a886-ccccf3e29f3d",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"### 关联低碳院小鹅通人员信息 "
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 68,
|
||||||
|
"id": "b48f9fba-d8e9-4d47-a456-48065a912f5f",
|
||||||
|
"metadata": {
|
||||||
|
"execution": {
|
||||||
|
"iopub.execute_input": "2023-03-22T12:51:48.070188Z",
|
||||||
|
"iopub.status.busy": "2023-03-22T12:51:48.069351Z",
|
||||||
|
"iopub.status.idle": "2023-03-22T12:51:48.091373Z",
|
||||||
|
"shell.execute_reply": "2023-03-22T12:51:48.090459Z",
|
||||||
|
"shell.execute_reply.started": "2023-03-22T12:51:48.070146Z"
|
||||||
|
},
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "stdout",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"ok\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"import json\n",
|
||||||
|
"import os\n",
|
||||||
|
"\n",
|
||||||
|
"filename = 'data/小鹅通人员信息.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",
|
||||||
|
"for k, v in dict1.items():\n",
|
||||||
|
" phone = v['phone']\n",
|
||||||
|
" if phone in dict2.keys():\n",
|
||||||
|
" dict2[phone]['id'] = k\n",
|
||||||
|
" dict2[phone]['nick'] = v['nick']\n",
|
||||||
|
" dict2[phone]['progress'] = v['progress']\n",
|
||||||
|
"filename = 'data/低碳院小鹅通人员信息.json'\n",
|
||||||
|
"with open(filename, 'w') as fl:\n",
|
||||||
|
" json.dump(dict2, fl, ensure_ascii=False)\n",
|
||||||
|
"print('ok')\n",
|
||||||
|
" "
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"id": "5ee64db3-7e59-4263-ae5b-d8529f1dca14",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"### 导入小鹅通打卡信息 "
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "6fc5dd93-790a-4708-8dcc-98a74d7ce14d",
|
||||||
|
"metadata": {
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"import openpyxl\n",
|
||||||
|
"import json\n",
|
||||||
|
"import os\n",
|
||||||
|
"import glob\n",
|
||||||
|
"import csv\n",
|
||||||
|
"import re\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"fi_path = 'data/小鹅通/打卡/'\n",
|
||||||
|
"fl = glob.glob(f'{fi_path}*.csv')\n",
|
||||||
|
"\n",
|
||||||
|
"dict1 = {}\n",
|
||||||
|
"for fn in fl:\n",
|
||||||
|
" with open(fn,'r',newline='') as csv_file:\n",
|
||||||
|
" list1 = []\n",
|
||||||
|
" fl1 = csv.reader(csv_file,delimiter=',')\n",
|
||||||
|
" group = re.findall(r'百日筑基”健康打卡—(.+)的打卡信息》',fn)[0]\n",
|
||||||
|
" \n",
|
||||||
|
" #print(group)\n",
|
||||||
|
" header = next(fl1)\n",
|
||||||
|
" #print(header)\n",
|
||||||
|
" header = next(fl1)\n",
|
||||||
|
" list2 = []\n",
|
||||||
|
" for line in fl1: \n",
|
||||||
|
" list2.append(line)\n",
|
||||||
|
" dict1[group] = list2\n",
|
||||||
|
"list1 = []\n",
|
||||||
|
"\n",
|
||||||
|
"for item in header:\n",
|
||||||
|
" \n",
|
||||||
|
" item = re.sub(r'\\t','',item)\n",
|
||||||
|
" print(item)\n",
|
||||||
|
" list1.append(item)\n",
|
||||||
|
"print(list1) \n",
|
||||||
|
"dict1['header'] = list1\n",
|
||||||
|
"#print(dict1)\n",
|
||||||
|
"\n",
|
||||||
|
"filename = 'data/小鹅通打卡信息.json'\n",
|
||||||
|
"with open(filename,'w') as fl:\n",
|
||||||
|
" json.dump(dict1, fl,ensure_ascii=False) "
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"id": "d296a9f0-1fdd-483e-839e-b994d647c7f2",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"### 统计小鹅通打卡信息 "
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 74,
|
||||||
|
"id": "204fcae8-32e6-4016-b533-b8a8a750580e",
|
||||||
|
"metadata": {
|
||||||
|
"execution": {
|
||||||
|
"iopub.execute_input": "2023-03-22T13:00:02.518291Z",
|
||||||
|
"iopub.status.busy": "2023-03-22T13:00:02.517403Z",
|
||||||
|
"iopub.status.idle": "2023-03-22T13:00:02.560955Z",
|
||||||
|
"shell.execute_reply": "2023-03-22T13:00:02.559935Z",
|
||||||
|
"shell.execute_reply.started": "2023-03-22T13:00:02.518251Z"
|
||||||
|
},
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "stdout",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"113\n",
|
||||||
|
"[['适应A组', '宗瑾', 0], ['适应A组', '范玉建', 0], ['适应A组', '小新卖蜡笔💚', 1], ['适应A组', '李轩', 1], ['适应A组', '赵文静', 1], ['适应A组', '啦啦啦', 2], ['适应A组', '沐风', 3], ['适应A组', '杨征', 4], ['适应A组', '毛毛李', 4], ['适应A组', 'Hansolo', 4], ['适应A组', '李旭影', 5], ['适应A组', '林泉', 5], ['适应A组', '海', 5], ['适应A组', '阮如玉', 7], ['适应A组', 'Qieyingli', 7], ['适应A组', '赵璐璐', 8], ['适应A组', '王绍亮', 9], ['适应A组', '冰王子', 10], ['适应A组', '贾小胖', 11], ['适应A组', 'yuandelin', 13], ['适应A组', '于双恩', 14], ['适应A组', '红太虎', 14], ['适应A组', '杨如意', 20], ['适应A组', 'Fan Yongsheng', 22], ['适应A组', '晓亚', 25], ['适应A组', 'Lan💐💐💐', 25], ['适应A组', '贺国锋', 28], ['适应A组', '闫瑞军', 29], ['适应A组', '呆呆(丹)🍀', 29], ['适应A组', '齐云龙', 35], ['适应A组', '高星', 42], ['适应A组', '高高兴兴', 43], ['适应A组', '孙任晖', 48], ['适应A组', '王海棠', 50], ['适应A组', '顺其自然', 73], ['适应A组', '老罗', 75], ['适应A组', 'Ssss', 77], ['适应A组', '阿白', 79], ['适应A组', 'Linge', 88], ['适应A组', '董春伟', 94], ['适应A组', 'LyuYJ', 95], ['适应A组', '阿杜', 71], ['适应B组', '宗瑾', 0], ['适应B组', '王涛', 0], ['适应B组', '张凡', 1], ['适应B组', '浩', 2], ['适应B组', '葱', 3], ['适应B组', '程萌', 3], ['适应B组', '无', 6], ['适应B组', 'Shuai', 22], ['适应B组', '。。。', 23], ['适应B组', '韩志华', 25], ['适应B组', '龙龙', 39], ['适应B组', 'YX~', 44], ['适应B组', 'liqiands', 45], ['适应B组', '比小熊', 57], ['适应B组', '欢欢', 63], ['适应B组', 'scofiedys', 64], ['适应B组', '武月', 103], ['适应C组', '宗瑾', 0], ['适应C组', '胜录', 0], ['适应C组', 'candy', 0], ['适应C组', '阳光雨露', 1], ['适应C组', '劉知邦', 1], ['适应C组', '方秋', 1], ['适应C组', '赵华博', 2], ['适应C组', '时㈥🇨🇳', 3], ['适应C组', '赛赛\\ue305', 8], ['适应C组', '延鑫', 9], ['适应C组', '颜', 12], ['适应C组', '韦慧🎈', 12], ['适应C组', '许明', 23], ['适应C组', '康善娇', 25], ['适应C组', '王伟', 30], ['适应C组', '丁江涛', 31], ['适应C组', '城墙', 51], ['适应C组', '香龙', 53], ['适应C组', '🍜李为真', 54], ['适应C组', 'Ming', 57], ['适应C组', '王子鑫', 73], ['适应C组', 'Ophelia琪', 82], ['适应C组', '张寅灵', 82], ['适应C组', '张艳杰', 107], ['提高组', '宗瑾', 0], ['提高组', '小新卖蜡笔💚', 0], ['提高组', 'momo', 1], ['提高组', 'momo', 15], ['提高组', '郭建秋', 17], ['提高组', 'fumei🍭🍿', 62], ['提高组', '刘捷', 89], ['提高组', '赵明', 89]]\n",
|
||||||
|
"ok\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"import json\n",
|
||||||
|
"import time\n",
|
||||||
|
"import csv\n",
|
||||||
|
"\n",
|
||||||
|
"filename = 'data/小鹅通打卡信息.json'\n",
|
||||||
|
"with open(filename,'r') as fl:\n",
|
||||||
|
" dict1 = json.load(fl) \n",
|
||||||
|
"filename = 'data/低碳院小鹅通人员信息.json'\n",
|
||||||
|
"with open(filename,'r') as fl:\n",
|
||||||
|
" dict2 = json.load(fl) \n",
|
||||||
|
"jiezhiri = '2022-11-21'\n",
|
||||||
|
"list_rq = dict1['header']\n",
|
||||||
|
"#print(list_rq)\n",
|
||||||
|
"num = list_rq.index(jiezhiri)\n",
|
||||||
|
"print(num)\n",
|
||||||
|
"list1 = list_rq[1:num+1]\n",
|
||||||
|
"list2 = []\n",
|
||||||
|
"#print(list1)\n",
|
||||||
|
"for k, v in dict1.items():\n",
|
||||||
|
" if k!='header':\n",
|
||||||
|
" for item in v:\n",
|
||||||
|
" nick = item[0]\n",
|
||||||
|
" record = item[1:num+1]\n",
|
||||||
|
" list2.append([k,nick,record.count('√')])\n",
|
||||||
|
"print(list2)\n",
|
||||||
|
"for item in list2:\n",
|
||||||
|
" nick = item[1]\n",
|
||||||
|
" unit = item[0]\n",
|
||||||
|
" for k, v in dict2.items():\n",
|
||||||
|
" if v['nick'] == nick and unit == v['unit']:\n",
|
||||||
|
" dict2[k]['daka'] = item[2]\n",
|
||||||
|
"\n",
|
||||||
|
"filename = 'data/低碳院小鹅通人员信息.json'\n",
|
||||||
|
"with open(filename, 'w') as fl:\n",
|
||||||
|
" json.dump(dict2, fl, ensure_ascii=False)\n",
|
||||||
|
"print('ok') "
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"id": "2bfd1f6b-c863-46fe-95f5-48a233c376fe",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"### 统计低碳院百日强基情况"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 76,
|
||||||
|
"id": "c12b2d1b-774e-40c1-8a80-df3fa5889b61",
|
||||||
|
"metadata": {
|
||||||
|
"execution": {
|
||||||
|
"iopub.execute_input": "2023-03-22T13:11:58.767063Z",
|
||||||
|
"iopub.status.busy": "2023-03-22T13:11:58.766209Z",
|
||||||
|
"iopub.status.idle": "2023-03-22T13:11:58.852385Z",
|
||||||
|
"shell.execute_reply": "2023-03-22T13:11:58.851586Z",
|
||||||
|
"shell.execute_reply.started": "2023-03-22T13:11:58.767021Z"
|
||||||
|
},
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"import json\n",
|
||||||
|
"import time\n",
|
||||||
|
"import csv\n",
|
||||||
|
"\n",
|
||||||
|
"filename = 'data/低碳院小鹅通人员信息.json'\n",
|
||||||
|
"with open(filename,'r') as fl:\n",
|
||||||
|
" dict2 = json.load(fl) \n",
|
||||||
|
"list1 = []\n",
|
||||||
|
"for k, v in dict2.items():\n",
|
||||||
|
" list2 = []\n",
|
||||||
|
" unit = v['unit']\n",
|
||||||
|
" name = v['name']\n",
|
||||||
|
" progress = v['progress']\n",
|
||||||
|
" if 'daka' in v.keys():\n",
|
||||||
|
" daka = v['daka']\n",
|
||||||
|
" else:\n",
|
||||||
|
" daka = 0\n",
|
||||||
|
" list2 = [unit,name,progress,daka]\n",
|
||||||
|
" list1.append(list2)\n",
|
||||||
|
"\n",
|
||||||
|
"filename = 'data/低碳院百日强基情况表(截止到20221121).xlsx'\n",
|
||||||
|
"wb = openpyxl.Workbook()\n",
|
||||||
|
"sheet = wb.active\n",
|
||||||
|
"\n",
|
||||||
|
"for row in list1:\n",
|
||||||
|
" sheet.append(row)\n",
|
||||||
|
" \n",
|
||||||
|
"wb.save(filename) \n",
|
||||||
|
" "
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "9668d7d6-d51d-4fbe-8c0c-c8fa6066aad1",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": []
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"metadata": {
|
"metadata": {
|
||||||
|
|||||||
Reference in new issue
Block a user