1779 lines
51 KiB
Plaintext
1779 lines
51 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "4925cb3a-bea3-4a4d-9590-6b91b62ca5b4",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"source": [
|
|
"# 体质检测管理"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "2a85feec-695b-4ea8-8093-91a59ed34c7f",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 体测单位信息导入"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "0b8d5cc0-e549-4547-98cc-a753f3a729d1",
|
|
"metadata": {},
|
|
"source": [
|
|
"### 安庆炼化信息导入"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "c5a0568c-3833-4335-a4b9-600310e1a541",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import openpyxl\n",
|
|
"import json\n",
|
|
"import pymongo\n",
|
|
"\n",
|
|
"myclient = pymongo.MongoClient('mongodb://localhost:27017/')\n",
|
|
"mydb = myclient[\"tice\"]\n",
|
|
"mycol = mydb[\"unit\"]\n",
|
|
"\n",
|
|
"name = '中国石油化工股份有限公司安庆炼化分公司'\n",
|
|
"short_name = '安庆炼化'\n",
|
|
"myquery = {\"name\": name}\n",
|
|
"if mycol.find_one(myquery) is None:\n",
|
|
" wb = openpyxl.load_workbook('data/中国石油化工股份有限公司安庆炼化分公司员工在职人员名单.xlsx')\n",
|
|
" sheet = wb.active\n",
|
|
" # sheets = wb.sheetnames\n",
|
|
" depart = []\n",
|
|
" dict1 = {}\n",
|
|
" new_code = []\n",
|
|
" for n in range(2, sheet.max_row+1):\n",
|
|
" m_depart = sheet.cell(n,5).value\n",
|
|
" if m_depart not in depart:\n",
|
|
" depart.append(sheet.cell(n,5).value)\n",
|
|
" # print(sheet.cell(n,5).value)\n",
|
|
"\n",
|
|
" dict1['name'] = '中国石油化工股份有限公司安庆炼化分公司'\n",
|
|
" dict1['short_name'] = '安庆炼化'\n",
|
|
" dict1['depart'] = depart\n",
|
|
" mycol.insert_one(dict1)\n",
|
|
" print('ok!')\n",
|
|
"else:\n",
|
|
" print('该单位已存在!')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "944372ff-9dc1-47e0-bfc0-a7d783fa9f43",
|
|
"metadata": {},
|
|
"source": [
|
|
"### 石家庄炼化信息导入"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "da3ded8a-d958-4aa7-be79-6c28a009b7cf",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import openpyxl\n",
|
|
"import json\n",
|
|
"import pymongo\n",
|
|
"\n",
|
|
"myclient = pymongo.MongoClient('mongodb://localhost:27017/')\n",
|
|
"mydb = myclient[\"tice\"]\n",
|
|
"mycol = mydb[\"unit\"]\n",
|
|
"\n",
|
|
"name = '中国石油化工股份有限公司石家庄炼化分公司'\n",
|
|
"short_name = '石家庄炼化'\n",
|
|
"myquery = {\"name\": name}\n",
|
|
"if mycol.find_one(myquery) is None:\n",
|
|
" wb = openpyxl.load_workbook('data/中国石油化工股份有限公司安庆炼化分公司员工在职人员名单.xlsx')\n",
|
|
" sheet = wb.active\n",
|
|
" # sheets = wb.sheetnames\n",
|
|
" depart = []\n",
|
|
" dict1 = {}\n",
|
|
" new_code = []\n",
|
|
" for n in range(2, sheet.max_row+1):\n",
|
|
" m_depart = sheet.cell(n,5).value\n",
|
|
" if m_depart not in depart:\n",
|
|
" depart.append(sheet.cell(n,5).value)\n",
|
|
" # print(sheet.cell(n,5).value)\n",
|
|
"\n",
|
|
" dict1['name'] = '中国石油化工股份有限公司安庆炼化分公司'\n",
|
|
" dict1['short_name'] = '安庆炼化'\n",
|
|
" dict1['depart'] = depart\n",
|
|
" mycol.insert_one(dict1)\n",
|
|
" print('ok!')\n",
|
|
"else:\n",
|
|
" print('该单位已存在!')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "bf42e8af-a506-4e60-a661-b4281e3fef54",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 录入体测信息"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "91a8f4f4-c417-4db7-94ba-2d3404e5c2c9",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import pymongo\n",
|
|
"from bson.objectid import ObjectId\n",
|
|
"from dateutil import parser\n",
|
|
"\n",
|
|
"myclient = pymongo.MongoClient('mongodb://localhost:27017/')\n",
|
|
"mydb = myclient[\"tice\"]\n",
|
|
"mycol = mydb[\"unit\"]\n",
|
|
"mycol1 = mydb[\"event\"]\n",
|
|
"dict1 = {}\n",
|
|
"\n",
|
|
"name = '中国石油化工股份有限公司安庆炼化分公司'\n",
|
|
"myquery = {\"name\": name}\n",
|
|
"dict1['code'] = 120\n",
|
|
"dict1['unit'] = '中国石油化工股份有限公司安庆炼化分公司'\n",
|
|
"dict1['address'] = '安徽安庆'\n",
|
|
"dict1['date_begin'] = '2021-09-08'\n",
|
|
"dict1['date_end'] = '2021-09-30'\n",
|
|
"if mycol.find_one(myquery) is None:\n",
|
|
" print('体测单位不存在!')\n",
|
|
"else:\n",
|
|
" myquery1 = {\"name\": name,\"event.code\": dict1['code']}\n",
|
|
" if mycol.find_one(myquery1) is None:\n",
|
|
" mycol.update_one(myquery,{'$push':{'event':dict1}})\n",
|
|
" print('ok!')\n",
|
|
" else:\n",
|
|
" print('该体测信息已经存在!')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "0c144068-4f2d-4901-bd28-725ecb260fd4",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 导出单位员工信息"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "d80c482d-aee2-45cf-8ac8-c357171f17f7",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import openpyxl\n",
|
|
"import json\n",
|
|
"import pymongo\n",
|
|
"from bson.objectid import ObjectId\n",
|
|
"\n",
|
|
"myclient = pymongo.MongoClient('mongodb://localhost:27017/')\n",
|
|
"mydb = myclient[\"tice\"]\n",
|
|
"mycol = mydb[\"person\"]\n",
|
|
"\n",
|
|
"wb = openpyxl.load_workbook('data/中国石油化工股份有限公司安庆炼化分公司员工在职人员名单.xlsx')\n",
|
|
"sheet = wb.active\n",
|
|
"# sheets = wb.sheetnames\n",
|
|
"list1 = []\n",
|
|
"person = {}\n",
|
|
"new_code = []\n",
|
|
"for n in range(2, sheet.max_row+1):\n",
|
|
" code = sheet.cell(n, 1).value\n",
|
|
" person.setdefault(code, {})\n",
|
|
" dict1 = {}\n",
|
|
" dict1['name'] = sheet.cell(n, 2).value\n",
|
|
" dict1['sex'] = sheet.cell(n, 3).value\n",
|
|
" dict1['unit'] = sheet.cell(n, 5).value\n",
|
|
" if sheet.cell(n, 4).value is None:\n",
|
|
" dict1['birth'] = sheet.cell(n, 6).value\n",
|
|
" else:\n",
|
|
" dict1['id_num'] = sheet.cell(n, 4).value\n",
|
|
" person[code] = dict1\n",
|
|
"filename = '安庆炼化人员名单.json'\n",
|
|
"with open(filename, 'w') as fl:\n",
|
|
" json.dump(person, fl, ensure_ascii=False)\n",
|
|
"print('ok')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "54d4790d-973f-4ee6-abff-3d5ff962de23",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 获取测试人员名单导入数据库"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "8ca8289e-b6b0-4b73-a788-1dd20592981f",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import json\n",
|
|
"import pymongo\n",
|
|
"from bson.objectid import ObjectId\n",
|
|
"import pymysql\n",
|
|
"\n",
|
|
"myclient = pymongo.MongoClient('mongodb://localhost:27017/')\n",
|
|
"mydb = myclient[\"tice\"]\n",
|
|
"mycol = mydb[\"person\"]\n",
|
|
"\n",
|
|
"db = pymysql.connect(\"localhost\",\"root\",\"songyi\",\"ydyb\" )\n",
|
|
"cursor = db.cursor()\n",
|
|
"\n",
|
|
"place_id = 120\n",
|
|
"exam_person = []\n",
|
|
"sql = f'SELECT distinct a.avatar_id FROM places_result AS a WHERE a.place_id={place_id} and a.avatar_id < 4999 ORDER BY a.avatar_id '\n",
|
|
"cursor.execute(sql)\n",
|
|
"results = cursor.fetchall()\n",
|
|
"cursor.close\n",
|
|
"for result in results:\n",
|
|
" exam_person.append(str(result[0]).rjust(5,'0'))\n",
|
|
"\n",
|
|
"filename = '安庆炼化人员名单.json'\n",
|
|
"\n",
|
|
"list1 = []\n",
|
|
"list2 = []\n",
|
|
"with open(filename,'r') as fl:\n",
|
|
" all_person = json.load(fl)\n",
|
|
"with open('result.json','r') as fl1:\n",
|
|
" res = json.load(fl1)\n",
|
|
"for k, v in all_person.items():\n",
|
|
" if k in exam_person:\n",
|
|
" dict2 = {}\n",
|
|
" dict3 = {}\n",
|
|
" dict2['name'] = v['name']\n",
|
|
" if v['sex'] == '男':\n",
|
|
" dict2['sex'] = 'M'\n",
|
|
" else:\n",
|
|
" dict2['sex'] = 'F'\n",
|
|
" if 'birth' in v:\n",
|
|
" s = str(v['birth'])\n",
|
|
" dict2['birth'] = f'{s[:4]}-{s[4:6]}-{s[6:8]}'\n",
|
|
" if 'id_num' in v:\n",
|
|
" s = v['id_num']\n",
|
|
" dict2['id_num'] = s\n",
|
|
" dict2['birth'] = f'{s[6:10]}-{s[10:12]}-{s[12:14]}'\n",
|
|
" dict2.setdefault('exam',{})\n",
|
|
" \n",
|
|
" #dict3['code'] = 120\n",
|
|
" dict3['sn'] = k\n",
|
|
" dict3['result'] = res[k]\n",
|
|
" dict2['exam'][str(place_id)] = dict3\n",
|
|
" list1.append(dict2)\n",
|
|
"x = mycol.insert_many(list1)\n",
|
|
"mycol1 = mydb[\"event\"]\n",
|
|
"myquery = {'code':120}\n",
|
|
"mycol1.update_one(myquery, {'$push': {'persons':x.inserted_ids}})\n",
|
|
"print('ok!')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "422270f4-5658-4869-8cc6-cf674ad95abf",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import json\n",
|
|
"import pymongo\n",
|
|
"from bson.objectid import ObjectId\n",
|
|
"\n",
|
|
"myclient = pymongo.MongoClient('mongodb://localhost:27017/')\n",
|
|
"mydb = myclient[\"tice\"]\n",
|
|
"mycol = mydb[\"person1\"]\n",
|
|
"\n",
|
|
"db = pymysql.connect(\"localhost\",\"root\",\"songyi\",\"ydyb\" )\n",
|
|
"cursor = db.cursor()\n",
|
|
"\n",
|
|
"place_id = 120\n",
|
|
"exam_person = []\n",
|
|
"sql = f'SELECT distinct a.avatar_id FROM places_result AS a WHERE a.place_id={place_id} and a.avatar_id < 4999 ORDER BY a.avatar_id '\n",
|
|
"cursor.execute(sql)\n",
|
|
"results = cursor.fetchall()\n",
|
|
"cursor.close\n",
|
|
"for result in results:\n",
|
|
" exam_person.append(str(result[0]).rjust(5,'0'))\n",
|
|
"\n",
|
|
"filename = '安庆炼化人员名单.json'\n",
|
|
"\n",
|
|
"list1 = []\n",
|
|
"list2 = []\n",
|
|
"with open(filename,'r') as fl:\n",
|
|
" all_person = json.load(fl)\n",
|
|
"with open('result.json','r') as fl1:\n",
|
|
" res = json.load(fl1)\n",
|
|
"for k,v in all_person.items():\n",
|
|
" if k in exam_person:\n",
|
|
" dict2 = {}\n",
|
|
" dict3 = {}\n",
|
|
" dict2['name'] = v['name']\n",
|
|
" if v['sex'] == '男':\n",
|
|
" dict2['sex'] = 'M'\n",
|
|
" else:\n",
|
|
" dict2['sex'] = 'F'\n",
|
|
" if 'birth' in v:\n",
|
|
" s = str(v['birth'])\n",
|
|
" dict2['birth'] = f'{s[:4]}-{s[4:6]}-{s[6:8]}'\n",
|
|
" if 'id_num' in v:\n",
|
|
" s = v['id_num']\n",
|
|
" dict2['id_num'] = s\n",
|
|
" dict2['birth'] = f'{s[6:10]}-{s[10:12]}-{s[12:14]}'\n",
|
|
" dict2.setdefault('exam',[])\n",
|
|
" dict3['code'] = 120\n",
|
|
" dict3['sn'] = k\n",
|
|
" dict3['result'] = res[k]\n",
|
|
" dict2['exam'].append(dict3)\n",
|
|
" list1.append(dict2)\n",
|
|
"x = mycol.insert_many(list1)\n",
|
|
"mycol1 = mydb[\"event\"]\n",
|
|
"myquery = {'code':120}\n",
|
|
"mycol1.update_one(myquery,{'$push':{'persons':x.inserted_ids}})\n",
|
|
"print('ok!')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "95ad1920-1393-4830-a48a-540070b51a09",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 测试项目添加测试人员名单"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "adf13de2-8205-4511-a655-75989440967e",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import json\n",
|
|
"from bson.objectid import ObjectId\n",
|
|
"import pymongo\n",
|
|
"import pymysql\n",
|
|
"\n",
|
|
"db = pymysql.connect(\"localhost\",\"root\",\"songyi\",\"ydyb\" )\n",
|
|
"cursor = db.cursor()\n",
|
|
"\n",
|
|
"list1 = []\n",
|
|
"sql = f'SELECT distinct a.avatar_id FROM places_result AS a WHERE a.place_id={place_id} and a.avatar_id < 4999 ORDER BY a.avatar_id '\n",
|
|
"cursor.execute(sql)\n",
|
|
"results = cursor.fetchall()\n",
|
|
"cursor.close\n",
|
|
"for result in results:\n",
|
|
" list1.append(str(result[0]).rjust(5,'0'))\n",
|
|
"\n",
|
|
"myclient = pymongo.MongoClient('mongodb://localhost:27017/')\n",
|
|
"mydb = myclient[\"tice\"]\n",
|
|
"mycol = mydb[\"event\"]\n",
|
|
"myquery = {'code':120}\n",
|
|
"mycol.update_one(myquery,{'$push':{'persons':list1}})\n",
|
|
" \n",
|
|
"print('ok')\n",
|
|
" \n",
|
|
" "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "2bb3cbdd-9fe1-4345-8c5a-53acb1a386de",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 获取人员测试成绩"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "910c3fcd-121a-42c0-9465-ad79a5829239",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import pymysql\n",
|
|
"import json\n",
|
|
"import time\n",
|
|
"\n",
|
|
"filename = 'item.json'\n",
|
|
"item = {}\n",
|
|
"unit = {}\n",
|
|
"with open(filename,'r') as fl:\n",
|
|
" dict1 = json.load(fl) \n",
|
|
"for k,v in dict1.items():\n",
|
|
" item[k] = v\n",
|
|
"user_id = 5\n",
|
|
"place_id =120\n",
|
|
"#user = '包永'\n",
|
|
"db = pymysql.connect(\"localhost\",\"root\",\"songyi\",\"ydyb\" )\n",
|
|
"cursor = db.cursor()\n",
|
|
"\n",
|
|
"sql = f'SELECT a.item_id,a.performance,a.score,DATE_FORMAT(a.date,\"%Y-%m-%d\") as date1,a.avatar_id FROM places_result AS a WHERE a.place_id={place_id} AND a.avatar_id < 4999 ORDER BY a.avatar_id,date1'\n",
|
|
"cursor.execute(sql)\n",
|
|
"re_ta = {}\n",
|
|
"dict1 = {}\n",
|
|
"print(\"\\n运动项目信息:\")\n",
|
|
"results = cursor.fetchall()\n",
|
|
"for result in results: \n",
|
|
" user = str(result[4]).rjust(5,'0')\n",
|
|
" m_item = str(result[0])\n",
|
|
" \n",
|
|
" re_ta.setdefault(user,{})\n",
|
|
" re_ta[user]['date'] =result[3]\n",
|
|
" item_name = item[m_item]['name']\n",
|
|
" re_ta[user].setdefault(item_name,{})\n",
|
|
" \n",
|
|
" #dict1.setdefault(item[m_item]['name'],{})\n",
|
|
" score = result[1]/item[m_item]['divisor']\n",
|
|
" #dict1[item[m_item]['name']]['成绩'] =f'{score} {item[m_item][\"unit\"]}'\n",
|
|
" #dict1[item[m_item]['name']]['得分'] =result[2]\n",
|
|
" re_ta[user][item_name]['成绩'] = f'{score} {item[m_item][\"unit\"]}'\n",
|
|
" re_ta[user][item_name]['得分'] =result[2]\n",
|
|
" \n",
|
|
" #re_ta[user] = dict1\n",
|
|
" #print(re_ta)\n",
|
|
"filename = 'result.json'\n",
|
|
"with open(filename,'w') as fl:\n",
|
|
" json.dump(re_ta, fl,ensure_ascii=False) \n",
|
|
"print('ok')\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "43cc57b0-aebc-4315-b48f-9268e754bebb",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 读取体测报告信息"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "5ac5e20c-c836-4ea4-a62c-acafbdb636e0",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import pdfplumber\n",
|
|
"\n",
|
|
"# 读取 PDF 文档\n",
|
|
"pdf = pdfplumber.open(\"file/211027/114.pdf\")\n",
|
|
"\n",
|
|
"# 获取页数\n",
|
|
"print(\"总页数:\",len(pdf.pages))\n",
|
|
"print(\"-----------------------------------------\")\n",
|
|
"n = len(pdf.pages)\n",
|
|
"# 读取第 4 页;索引从 0开始\n",
|
|
"page = pdf.pages[n-2] \n",
|
|
"print(\"本页:\",page.page_number)\n",
|
|
"print(\"-----------------------------------------\")\n",
|
|
"text = page.extract_text()\n",
|
|
"#for s in text:\n",
|
|
"# print(s)\n",
|
|
"print(text)\n",
|
|
"print(text.split('\\n'))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "957b1771-7da1-4ecd-a2b8-889c288b2789",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import pdfplumber\n",
|
|
"import pymysql\n",
|
|
"\"\"\"获取人员测试成绩\"\"\"\n",
|
|
"user_id = 5\n",
|
|
"place_id =120\n",
|
|
"db = pymysql.connect(\"localhost\",\"root\",\"songyi\",\"ydyb\" )\n",
|
|
"cursor = db.cursor()\n",
|
|
"sql = f'SELECT a.item_id,a.performance,a.score,a.date FROM places_result AS a WHERE a.place_id={place_id} AND a.avatar_id={user_id}'\n",
|
|
"cursor.execute(sql)\n",
|
|
"re_ta = {}\n",
|
|
"print(\"\\n运动项目信息:\")\n",
|
|
"results = cursor.fetchall()\n",
|
|
"for result in results:\n",
|
|
"# print (\"%d--%s\" %(result[0],result[1]))\n",
|
|
" re_ta[result[0]] = result[1]\n",
|
|
"\n",
|
|
"dict1 = {}\n",
|
|
"\n",
|
|
"# 读取 PDF 文档\n",
|
|
"pdf = pdfplumber.open(\"5.pdf\")\n",
|
|
"\n",
|
|
"# 获取页数\n",
|
|
"num = len(pdf.pages)\n",
|
|
"page = pdf.pages[0] \n",
|
|
"text = page.extract_text()\n",
|
|
"dict1['name'] = text.split('\\n')[2]\n",
|
|
"dict1['sn'] = text.split('\\n')[4]\n",
|
|
"\n",
|
|
"\n",
|
|
"print(dict1)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "81b0babc-5da8-43b2-b81a-61db0e7e301b",
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2021-10-12T13:21:30.438009Z",
|
|
"iopub.status.busy": "2021-10-12T13:21:30.437074Z",
|
|
"iopub.status.idle": "2021-10-12T13:21:30.449886Z",
|
|
"shell.execute_reply": "2021-10-12T13:21:30.447584Z",
|
|
"shell.execute_reply.started": "2021-10-12T13:21:30.437900Z"
|
|
}
|
|
},
|
|
"source": [
|
|
"## 体测项目信息"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "6531259c-9727-44f7-9ec3-d6dbe9b76987",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import pymysql\n",
|
|
"import json\n",
|
|
"\n",
|
|
"db = pymysql.connect(\"localhost\",\"root\",\"songyi\",\"ydyb\" )\n",
|
|
"cursor = db.cursor()\n",
|
|
"sql = \"SELECT a.id,a.name, b.name,b.divisor FROM items AS a,items_unit AS b WHERE a.unit_id = b.id\"\n",
|
|
"cursor.execute(sql)\n",
|
|
"dict1 = {}\n",
|
|
"\n",
|
|
"results = cursor.fetchall()\n",
|
|
"for result in results:\n",
|
|
"# print (\"%d--%s\" %(result[0],result[1]))\n",
|
|
" item = {}\n",
|
|
" id = result[0]\n",
|
|
" dict1.setdefault(id,{})\n",
|
|
" item['name'] = result[1]\n",
|
|
" item['unit'] = result[2]\n",
|
|
" item['divisor'] = result[3]\n",
|
|
" dict1[id] = item\n",
|
|
"filename = 'item.json'\n",
|
|
"with open(filename,'w') as fl:\n",
|
|
" json.dump(dict1, fl,ensure_ascii=False) \n",
|
|
"with open(filename,'r') as fl:\n",
|
|
" dict1 = json.load(fl) \n",
|
|
"for k,v in dict1.items():\n",
|
|
" print(k,v)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "9af74d66-b410-4fbf-afcd-9884174e6841",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import json\n",
|
|
"filename = 'item.json'\n",
|
|
"item = {}\n",
|
|
"with open(filename,'r') as fl:\n",
|
|
" dict1 = json.load(fl) \n",
|
|
"for k,v in dict1.items():\n",
|
|
" item[k] = v\n",
|
|
"print(item['1'])"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "c47e9547-d896-4fe2-8f70-8635c92fa792",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 压缩体测报告"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "1ccab0f2-448b-4423-ae21-aa1c0f6470da",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"from pdf2image import convert_from_path, convert_from_bytes\n",
|
|
"import img2pdf \n",
|
|
"import glob\n",
|
|
"import os,sys\n",
|
|
"import tempfile\n",
|
|
"from pdf2image.exceptions import (\n",
|
|
" PDFInfoNotInstalledError,\n",
|
|
" PDFPageCountError,\n",
|
|
" PDFSyntaxError\n",
|
|
")\n",
|
|
"#images = convert_from_path('1.pdf',dpi=200,fmt='jpg', output_folder='./sample_data')\n",
|
|
"fl_path = 'file/split'\n",
|
|
"new_path ='file/new_split'\n",
|
|
"old = glob.glob(f'{fl_path}/*.pdf')\n",
|
|
"old.sort()\n",
|
|
"for old_file in old:\n",
|
|
" s = os.path.basename(old_file).split('.')[0].rjust(5,'0')\n",
|
|
" new_file = f'{new_path}/{s}.pdf'\n",
|
|
" \n",
|
|
" with tempfile.TemporaryDirectory() as path:\n",
|
|
" images_from_path = convert_from_path(old_file, dpi=100,fmt='jpg', output_folder=path)\n",
|
|
" fl=glob.glob(f'{path}/*.jpg')\n",
|
|
" fl.sort()\n",
|
|
" a4inpt = (img2pdf.mm_to_pt(210),img2pdf.mm_to_pt(297))\n",
|
|
" layout_fun = img2pdf.get_layout_fun(a4inpt)\n",
|
|
" with open(new_file,\"wb\") as f:\n",
|
|
" f.write(img2pdf.convert(fl,layout_fun=layout_fun))\n",
|
|
"\n",
|
|
"\n",
|
|
" #print(path)\n",
|
|
"\n",
|
|
" print(new_file,'ok')\n",
|
|
"#print(old)\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "9f572c02-4a9b-42c1-b6c5-e37f41bbeca1",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 上传体测报告"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "809fa112-1bf8-4509-a5a6-cfad88f9cbf5",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import glob\n",
|
|
"import os,sys\n",
|
|
"import pymongo\n",
|
|
"from gridfs import GridFS\n",
|
|
"from bson.objectid import ObjectId\n",
|
|
"\n",
|
|
"myclient = pymongo.MongoClient('mongodb://localhost:27017/')\n",
|
|
"mydb = myclient[\"tice\"]\n",
|
|
"mycol = mydb[\"person\"]\n",
|
|
"#体质监测编号\n",
|
|
"code = '120'\n",
|
|
"UploadCache = \"uploadcache\"\n",
|
|
"dbURL = \"mongodb://localhost:27017\"\n",
|
|
"\n",
|
|
"#上传文件\n",
|
|
"def upLoadFile(file_coll,file_name,data_link):\n",
|
|
" \n",
|
|
" filter_condition = {\"filename\": code + '-' + os.path.basename(file_name), \"url\": data_link}\n",
|
|
" gridfs_col = GridFS(mydb, collection=file_coll)\n",
|
|
" file_ = \"0\"\n",
|
|
" query = {\"filename\":\"\"}\n",
|
|
" query[\"filename\"] = filter_condition[\"filename\"]#file_name\n",
|
|
"\n",
|
|
" if gridfs_col.exists(query):\n",
|
|
" print('已经存在该文件')\n",
|
|
" else:\n",
|
|
"\n",
|
|
" with open(file_name, 'rb') as file_r:\n",
|
|
" file_data = file_r.read()\n",
|
|
" file_ = gridfs_col.put(data=file_data, **filter_condition) # 上传到gridfs\n",
|
|
"\n",
|
|
" print(file_)\n",
|
|
"\n",
|
|
"\n",
|
|
" return file_ \n",
|
|
"\n",
|
|
"\n",
|
|
"dict1 = {}\n",
|
|
"list1 = []\n",
|
|
"#mycol.update_one(myquery,{'$push':{'persons':list1}})\n",
|
|
"fl_path = 'file/new'\n",
|
|
"fl=glob.glob(f'{fl_path}/*.pdf')\n",
|
|
"fl.sort()\n",
|
|
"for fi in fl:\n",
|
|
" dict1 = {}\n",
|
|
" s = os.path.basename(fi).split('.')[0]\n",
|
|
" print(s) \n",
|
|
" ss = upLoadFile(\"report\",fi,\"\")\n",
|
|
" \n",
|
|
" print(s)\n",
|
|
" myquery = {f'exam.{code}.sn':s}\n",
|
|
" mycol.update_one(myquery,{'$set':{f'exam.{code}.report':ss}},True)\n",
|
|
" #print(myquery)\n",
|
|
" \n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "8af1a4bc-2aee-46bd-9f8c-b7f26093541b",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 查询体测报告"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "1c802046-3931-444a-8a66-75a853ac2467",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import glob\n",
|
|
"import os,sys\n",
|
|
"import pymongo\n",
|
|
"from gridfs import GridFS\n",
|
|
"\n",
|
|
"\n",
|
|
"myclient = pymongo.MongoClient('mongodb://localhost:27017/')\n",
|
|
"mydb = myclient[\"tice\"]\n",
|
|
"mycol = mydb[\"event\"]\n",
|
|
"sn = '00005'\n",
|
|
"s = f'report.{sn}'\n",
|
|
"myquery = {s:{'$exists':True},'code':120}\n",
|
|
"x = mycol.find_one(myquery,{s:1})\n",
|
|
"if x:\n",
|
|
" print(x['report'][sn])\n",
|
|
"else:\n",
|
|
" print('no record!')\n",
|
|
"#print(type(x))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "c67fc14e-ccf8-41c5-a0f8-0c3a664eb484",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 脊椎代码表导入"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "1d98a8d7-c888-4630-abec-de85851e4342",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import openpyxl\n",
|
|
"import json\n",
|
|
" \n",
|
|
"wb = openpyxl.load_workbook('file/脊柱症状自我诊断表代码表.xlsx')\n",
|
|
"sheet = wb.active\n",
|
|
"#sheets = wb.sheetnames\n",
|
|
"dict1 = {}\n",
|
|
"for n in range(1,sheet.max_row+1):\n",
|
|
" dict1[sheet.cell(n,1).value] = sheet.cell(n,2).value \n",
|
|
"filename = '脊柱症状自我诊断表代码表.json'\n",
|
|
"with open(filename,'w') as fl:\n",
|
|
" json.dump(dict1, fl,ensure_ascii=False) \n",
|
|
"print(dict1)\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "36717021-5c0e-40d6-8988-dfe8ec309275",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 脊椎症状自我诊断表导入"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "9e33d1bc-1b71-47f7-928a-16ec435449d6",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import openpyxl\n",
|
|
"import json\n",
|
|
"\n",
|
|
"with open('脊柱症状自我诊断表代码表.json','r') as fl:\n",
|
|
" dm = json.load(fl)\n",
|
|
"wb = openpyxl.load_workbook('file/脊柱症状自我诊断表统计.xlsx')\n",
|
|
"sheet = wb.active\n",
|
|
"#sheets = wb.sheetnames\n",
|
|
"dict1 = {}\n",
|
|
"for n in range(1,sheet.max_row+1):\n",
|
|
" mdm = sheet.cell(n,1).value\n",
|
|
" dict1.setdefault(mdm,{})\n",
|
|
" dict2 = {}\n",
|
|
" list1 = []\n",
|
|
" for i in range(2,36):\n",
|
|
" if sheet.cell(n,i).value is None:\n",
|
|
" break\n",
|
|
" else:\n",
|
|
" s = str(sheet.cell(n,i).value)\n",
|
|
" if s.isnumeric(): \n",
|
|
" list1.append(dm[s])\n",
|
|
" else:\n",
|
|
" dict2['备注'] = s\n",
|
|
" dict2['症状'] = list1\n",
|
|
" dict1[mdm] = dict2\n",
|
|
"filename = '脊柱症状自我诊断表统计.json'\n",
|
|
"with open(filename,'w') as fl:\n",
|
|
" json.dump(dict1, fl,ensure_ascii=False) \n",
|
|
"print('ok')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "3711130b-59e3-4844-ac31-234ba77cd46c",
|
|
"metadata": {
|
|
"tags": [],
|
|
"toc-hr-collapsed": true
|
|
},
|
|
"source": [
|
|
"## 脊柱症状统计"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "ae25fffb-4682-49b1-90aa-218504ac88d7",
|
|
"metadata": {},
|
|
"source": [
|
|
"### 脊椎症状自评代码矩阵生成"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "5e49d9c5-69cc-42dc-b872-738b6985f7a3",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import json\n",
|
|
"\n",
|
|
"wb = openpyxl.load_workbook('data/脊椎症状自评矩阵代码表.xlsx')\n",
|
|
"sheet = wb.active\n",
|
|
"dict1 = {}\n",
|
|
"\n",
|
|
"for n in range(2,sheet.max_row+1):\n",
|
|
" mxh = sheet.cell(n,1).value\n",
|
|
" dict1.setdefault(mxh,{})\n",
|
|
" mwt = sheet.cell(n,2).value\n",
|
|
" mtj = sheet.cell(n,3).value\n",
|
|
" mdm = sheet.cell(n,4).value\n",
|
|
" dict1[mxh]['代码'] = mdm\n",
|
|
" dict1[mxh]['问题'] = mwt\n",
|
|
" dict1[mxh]['条件'] = mtj\n",
|
|
" \n",
|
|
"filename = 'data/脊柱症状自评代码矩阵.json'\n",
|
|
"with open(filename,'w') as fl:\n",
|
|
" json.dump(dict1, fl,ensure_ascii=False) \n",
|
|
"print('ok')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "7520a013-d31b-46fc-af9d-91740d24b0f0",
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2021-11-09T23:24:59.628916Z",
|
|
"iopub.status.busy": "2021-11-09T23:24:59.627689Z",
|
|
"iopub.status.idle": "2021-11-09T23:24:59.638848Z",
|
|
"shell.execute_reply": "2021-11-09T23:24:59.636589Z",
|
|
"shell.execute_reply.started": "2021-11-09T23:24:59.628807Z"
|
|
}
|
|
},
|
|
"source": [
|
|
"### 脊椎症状自评数据矩阵生成"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "61f92c63-d359-4c4b-ad64-9b8268a3e992",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import json\n",
|
|
"dict1 = {}\n",
|
|
"dict1['颈椎'] = 1000\n",
|
|
"dict1['胸椎'] = 100\n",
|
|
"dict1['腰椎'] = 10\n",
|
|
"dict1['骶尾椎'] = 1\n",
|
|
"dict_all = {}\n",
|
|
"\n",
|
|
"filename = '脊柱症状自我诊断表统计.json'\n",
|
|
"with open(filename,'r') as fl:\n",
|
|
" dict2 = json.load(fl) \n",
|
|
"\n",
|
|
"list_all = dict2.keys()\n",
|
|
"filename = '脊柱症状统计汇总表.json'\n",
|
|
"with open(filename,'r') as fl:\n",
|
|
" dict2 = json.load(fl) \n",
|
|
"list_zz = dict2.keys()\n",
|
|
"sorted(list_all)\n",
|
|
"for item in list_all:\n",
|
|
" if item not in list_zz:\n",
|
|
" dict_all[item] = '0000'\n",
|
|
" else:\n",
|
|
" m_sum = 0\n",
|
|
" for item1 in dict2[item]:\n",
|
|
" m_sum += dict1[item1]\n",
|
|
" dict_all[item] = str(m_sum).rjust(4,'0')\n",
|
|
"filename = 'data/脊柱症状自评数据矩阵.json'\n",
|
|
"with open(filename,'w') as fl:\n",
|
|
" json.dump(dict_all, fl,ensure_ascii=False) \n",
|
|
"print('ok') \n",
|
|
"print(len(dict_all))\n",
|
|
" "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "bdc4673c-a0e2-4c8c-913a-47e39c7a366e",
|
|
"metadata": {},
|
|
"source": [
|
|
"### 分部门、性别人数统计"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "908302d5-252d-403e-80e5-fdc0694061b8",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import json\n",
|
|
"import openpyxl\n",
|
|
"import pymysql\n",
|
|
"import json\n",
|
|
"\n",
|
|
"db = pymysql.connect(\"localhost\",\"root\",\"songyi\",\"ydyb\" )\n",
|
|
"cursor = db.cursor()\n",
|
|
"\n",
|
|
"fi_xls = 'data/北海炼化名单表(前后台).xlsx'\n",
|
|
"wb = openpyxl.load_workbook(fi_xls)\n",
|
|
"sheet = wb.active\n",
|
|
"depart = {}\n",
|
|
"m_xx ={}\n",
|
|
"for n in range(2,sheet.max_row+1): \n",
|
|
" m_dm = str(sheet.cell(n,1).value)\n",
|
|
" m_xb = sheet.cell(n,3).value\n",
|
|
" m_depart = sheet.cell(n,6).value\n",
|
|
" depart[m_dm] = m_depart\n",
|
|
" m_xx[m_dm] = [m_xb,m_depart] #人员信息\n",
|
|
" \n",
|
|
"filename = 'data/脊柱症状自评代码矩阵.json'\n",
|
|
"with open(filename,'r') as fl:\n",
|
|
" dict1 = json.load(fl)\n",
|
|
"dict2 = dict1.values()\n",
|
|
"dm = {}\n",
|
|
"for item in dict2:\n",
|
|
" dm[item['代码']] = item['问题']\n",
|
|
"print(dm)\n",
|
|
"list_dm = dm.keys()\n",
|
|
"filename = 'data/脊柱症状自评数据矩阵.json'\n",
|
|
"with open(filename,'r') as fl:\n",
|
|
" data = json.load(fl)\n",
|
|
"# 生成人员信息表,含性别、部门\n",
|
|
"list1 = []\n",
|
|
"for k, v in data.items():\n",
|
|
" list2 = []\n",
|
|
" list2.append(k)\n",
|
|
" list2.append(m_xx[k][0])\n",
|
|
" list2.append(m_xx[k][1])\n",
|
|
" list2.append(v)\n",
|
|
" list1.append(list2)\n",
|
|
"\n",
|
|
"'''sql = 'insert into tongji(ygdm,xb,bm,jzdm) values(%s,%s,%s,%s)'\n",
|
|
"#try:\n",
|
|
" # 执行sql语句\n",
|
|
"cursor.executemany(sql, list1)\n",
|
|
" # 提交到数据库执行\n",
|
|
"db.commit()\n",
|
|
"#except :\n",
|
|
" # 如果发生错误则回滚\n",
|
|
"# db.rollback()\n",
|
|
"# 关闭游标\n",
|
|
"cursor.close()\n",
|
|
"# 关闭数据库连接\n",
|
|
"db.close()'''\n",
|
|
"sql = 'SELECT bm,xb,jzdm,COUNT(jzdm) FROM tongji where bm=\"管理部门\" GROUP BY bm,jzdm,xb ORDER BY jzdm,xb'\n",
|
|
"cursor.execute(sql)\n",
|
|
"results = cursor.fetchall()\n",
|
|
"result = {}\n",
|
|
"print('管理部门')\n",
|
|
"for row in results:\n",
|
|
" result.setdefault(row[2],{})\n",
|
|
" result[row[2]][row[1]] = row[3]\n",
|
|
"#print(result) \n",
|
|
"for k, v in dm.items():\n",
|
|
" if k in result.keys():\n",
|
|
" if '男' in result[k].keys():\n",
|
|
" nan = result[k]['男']\n",
|
|
" else:\n",
|
|
" nan = 0\n",
|
|
" if '女' in result[k].keys():\n",
|
|
" nv = result[k]['女']\n",
|
|
" else:\n",
|
|
" nv = 0\n",
|
|
" print(v,'男',nan,'女',nv)\n",
|
|
" else:\n",
|
|
" print(v,'男',0,'女',0)\n",
|
|
"\n",
|
|
"sql = 'SELECT bm,xb,jzdm,COUNT(jzdm) FROM tongji where bm=\"一线部门\" GROUP BY bm,jzdm,xb ORDER BY jzdm,xb'\n",
|
|
"cursor.execute(sql)\n",
|
|
"results = cursor.fetchall()\n",
|
|
"result = {}\n",
|
|
"print('一线部门')\n",
|
|
"for row in results:\n",
|
|
" result.setdefault(row[2],{})\n",
|
|
" result[row[2]][row[1]] = row[3]\n",
|
|
"#print(result) \n",
|
|
"for k, v in dm.items():\n",
|
|
" if k in result.keys():\n",
|
|
" if '男' in result[k].keys():\n",
|
|
" nan = result[k]['男']\n",
|
|
" else:\n",
|
|
" nan = 0\n",
|
|
" if '女' in result[k].keys():\n",
|
|
" nv = result[k]['女']\n",
|
|
" else:\n",
|
|
" nv = 0\n",
|
|
" print(v,'男',nan,'女',nv)\n",
|
|
" else:\n",
|
|
" print(v,'男',0,'女',0)\n",
|
|
"\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "3e3a3d27-7703-484e-ae47-add0e9367cfe",
|
|
"metadata": {},
|
|
"source": [
|
|
"### 脊椎症状自评数据统计(人数)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "664507fd-6f9c-44fd-8939-6d743e47cb81",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import json\n",
|
|
"import openpyxl\n",
|
|
"\n",
|
|
"fi_xls = 'data/北海炼化名单表(前后台).xlsx'\n",
|
|
"wb = openpyxl.load_workbook(fi_xls)\n",
|
|
"sheet = wb.active\n",
|
|
"depart = {}\n",
|
|
"for n in range(2,sheet.max_row+1): \n",
|
|
" m_dm = str(sheet.cell(n,1).value)\n",
|
|
" m_depart = sheet.cell(n,6).value\n",
|
|
" depart[m_dm] = m_depart\n",
|
|
" \n",
|
|
"filename = 'data/脊柱症状自评代码矩阵.json'\n",
|
|
"with open(filename,'r') as fl:\n",
|
|
" dict1 = json.load(fl)\n",
|
|
"dict2 = dict1.values()\n",
|
|
"dm = {}\n",
|
|
"for item in dict2:\n",
|
|
" dm[item['代码']] = item['问题']\n",
|
|
"print(dm)\n",
|
|
"list_dm = dm.keys()\n",
|
|
"filename = 'data/脊柱症状自评数据矩阵.json'\n",
|
|
"with open(filename,'r') as fl:\n",
|
|
" data = json.load(fl)\n",
|
|
"dict_tj = {}\n",
|
|
"for k, v in data.items():\n",
|
|
" dict_tj.setdefault(v,0)\n",
|
|
" dict_tj[v] +=1\n",
|
|
"\n",
|
|
"\n",
|
|
"result = {}\n",
|
|
"for k, v in data.items():\n",
|
|
" result.setdefault(depart[k],{})\n",
|
|
" result[depart[k]].setdefault(v,0)\n",
|
|
" result[depart[k]][v] += 1\n",
|
|
"#new_dict = sorted(result.items(), key = lambda kv:(kv[1], kv[0]),reverse=True) \n",
|
|
"#print(part)\n",
|
|
"print(result)\n",
|
|
"wb = openpyxl.Workbook()\n",
|
|
"m_totle = 0\n",
|
|
"sheet = wb.active\n",
|
|
"i = 1\n",
|
|
"for k, v in result.items():\n",
|
|
" print(k)\n",
|
|
" dict3 = {}\n",
|
|
" for k1, v1 in v.items():\n",
|
|
" dict3[k1] = v1\n",
|
|
" for m_dm in dm:\n",
|
|
" if m_dm in dict3.keys():\n",
|
|
" print(dm[m_dm],dict3[m_dm])\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "3aa7243c-1d20-4a0c-b6b1-bce6ca110222",
|
|
"metadata": {},
|
|
"source": [
|
|
"### 导入基础数据"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "c30ad0bb-1119-4ab4-8c3c-254a4b246d28",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import json\n",
|
|
"import openpyxl\n",
|
|
"\n",
|
|
"## 导入脊椎症状对照表\n",
|
|
"wb = openpyxl.load_workbook('file/脊椎症状对应表.xlsx')\n",
|
|
"sheet = wb.active\n",
|
|
"dict1 = {}\n",
|
|
"'''for n in range(2,sheet.max_row+1):\n",
|
|
" mjz = sheet.cell(n,1).value\n",
|
|
" dict1.setdefault(mjz,[])\n",
|
|
" dict1[mjz].append(sheet.cell(n,2).value)\n",
|
|
"#print(dict1)'''\n",
|
|
"for n in range(2,sheet.max_row+1):\n",
|
|
" mzz = sheet.cell(n,2).value\n",
|
|
" mjz = sheet.cell(n,1).value\n",
|
|
" dict1[mzz] = mjz\n",
|
|
"#print(dict1)\n",
|
|
"filename = '脊柱症状自我诊断表统计.json'\n",
|
|
"result = {}\n",
|
|
"with open(filename,'r') as fl:\n",
|
|
" dict2 = json.load(fl) \n",
|
|
"#print(dict1)\n",
|
|
"for k, v in dict2.items():\n",
|
|
" result.setdefault(k,[])\n",
|
|
" for k1, v1 in v.items(): \n",
|
|
" for zz in v1:\n",
|
|
" if zz in dict1.keys() and dict1[zz] not in result[k]:\n",
|
|
" result[k].append(dict1[zz])\n",
|
|
"\n",
|
|
"for k in list(result.keys()):\n",
|
|
" if not result.get(k):\n",
|
|
" del result[k]\n",
|
|
"#print(result)\n",
|
|
"filename = '脊柱症状统计汇总表.json'\n",
|
|
"with open(filename,'w') as fl:\n",
|
|
" json.dump(result, fl,ensure_ascii=False) \n",
|
|
"print('ok')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "10fe9b36-5853-45ce-b291-f6259109fac0",
|
|
"metadata": {},
|
|
"source": [
|
|
"### 统计人数(脊椎)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "e05247bb-1b03-486a-9c59-52882964231e",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import json\n",
|
|
"import openpyxl\n",
|
|
"import os,sys,shutil\n",
|
|
"\n",
|
|
"## 导入脊椎症状对照表\n",
|
|
"wb = openpyxl.load_workbook('file/脊椎症状对应表.xlsx')\n",
|
|
"sheet = wb.active\n",
|
|
"dict1 = {}\n",
|
|
"for n in range(2,sheet.max_row+1):\n",
|
|
" mzz = sheet.cell(n,2).value\n",
|
|
" mjz = sheet.cell(n,1).value\n",
|
|
" dict1[mzz] = mjz\n",
|
|
"fi_xls = os.getcwd() + '/北海炼化名单表(202110).xlsx'\n",
|
|
"wb = openpyxl.load_workbook(fi_xls)\n",
|
|
"sheet = wb.active\n",
|
|
"depart = {}\n",
|
|
"part = []\n",
|
|
"for n in range(2,sheet.max_row+1): \n",
|
|
" m_dm = str(sheet.cell(n,1).value)\n",
|
|
" m_depart = sheet.cell(n,5).value\n",
|
|
" depart[m_dm] = m_depart\n",
|
|
" if m_depart not in part:\n",
|
|
" part.append(m_depart)\n",
|
|
"filename = '脊柱症状统计汇总表.json'\n",
|
|
"with open(filename,'r') as fl:\n",
|
|
" dict2 = json.load(fl) \n",
|
|
"result = {}\n",
|
|
"#print(dict2)\n",
|
|
"for k, v in dict2.items():\n",
|
|
" result.setdefault(depart[k],{})\n",
|
|
" for v1 in v:\n",
|
|
" result[depart[k]].setdefault(v1,0)\n",
|
|
" result[depart[k]][v1] += 1\n",
|
|
"#print(part)\n",
|
|
"print(result)\n",
|
|
"wb = openpyxl.Workbook()\n",
|
|
"m_totle = 0\n",
|
|
"sheet = wb.active\n",
|
|
"i = 1\n",
|
|
"for name in part:\n",
|
|
" m_sum = 0\n",
|
|
" sheet[f'A{i}'] = name\n",
|
|
" i +=1\n",
|
|
" sheet[f'A{i}'] = '脊椎'\n",
|
|
" sheet[f'B{i}'] = '人数'\n",
|
|
" i +=1\n",
|
|
" new_dict = sorted(result[name].items(), key = lambda kv:(kv[1], kv[0]),reverse=True)\n",
|
|
" for k, v in new_dict:\n",
|
|
" sheet[f'A{i}'] = k\n",
|
|
" sheet[f'B{i}'] = v\n",
|
|
" i +=1\n",
|
|
" m_sum +=v\n",
|
|
" sheet[f'A{i}'] = '合计'\n",
|
|
" sheet[f'B{i}'] = m_sum\n",
|
|
" m_totle = m_totle + m_sum\n",
|
|
" i +=2\n",
|
|
"sheet[f'A{i}'] = '总计'\n",
|
|
"sheet[f'B{i}'] = m_totle\n",
|
|
"wb.save('test4.xlsx')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "b5e86c3b-d81a-418c-85b5-28f6fd524ba4",
|
|
"metadata": {},
|
|
"source": [
|
|
"### 统计全员人数(脊椎)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "761715db-8d24-44e5-9c0e-11df553aa414",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import json\n",
|
|
"import openpyxl\n",
|
|
"import os,sys,shutil\n",
|
|
"\n",
|
|
"## 导入脊椎症状对照表\n",
|
|
"wb = openpyxl.load_workbook('file/脊椎症状对应表.xlsx')\n",
|
|
"sheet = wb.active\n",
|
|
"dict1 = {}\n",
|
|
"\n",
|
|
"filename = '脊柱症状统计汇总表.json'\n",
|
|
"with open(filename,'r') as fl:\n",
|
|
" dict2 = json.load(fl) \n",
|
|
"result = {}\n",
|
|
"#print(dict2)\n",
|
|
"for k, v in dict2.items(): \n",
|
|
" for v1 in v:\n",
|
|
" result.setdefault(v1,0)\n",
|
|
" result[v1] += 1\n",
|
|
"#print(part)\n",
|
|
"print(result)\n",
|
|
"wb = openpyxl.Workbook()\n",
|
|
"m_sum = 0\n",
|
|
"sheet = wb.active\n",
|
|
"i = 1\n",
|
|
"sheet[f'A{i}'] = name\n",
|
|
"i +=1\n",
|
|
"sheet[f'A{i}'] = '脊椎'\n",
|
|
"sheet[f'B{i}'] = '人数'\n",
|
|
"i +=1\n",
|
|
"new_dict = sorted(result.items(), key = lambda kv:(kv[1], kv[0]),reverse=True)\n",
|
|
"for k, v in new_dict:\n",
|
|
" sheet[f'A{i}'] = k\n",
|
|
" sheet[f'B{i}'] = v\n",
|
|
" i +=1\n",
|
|
" m_sum +=v\n",
|
|
"sheet[f'A{i}'] = '合计'\n",
|
|
"sheet[f'B{i}'] = m_sum\n",
|
|
"\n",
|
|
"wb.save('test4.xlsx')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "832cb4de-cae2-459f-bd16-1c59247614a3",
|
|
"metadata": {},
|
|
"source": [
|
|
"### 统计人数(症状)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "50004904-b326-4e25-819f-81748302d1fe",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import json\n",
|
|
"import openpyxl\n",
|
|
"import os,sys,shutil\n",
|
|
"\n",
|
|
"## 导入脊椎症状对照表\n",
|
|
"\n",
|
|
"wb = openpyxl.load_workbook('file/脊椎症状对应表.xlsx')\n",
|
|
"sheet = wb.active\n",
|
|
"dict1 = {}\n",
|
|
"for n in range(2,sheet.max_row+1):\n",
|
|
" mzz = sheet.cell(n,2).value\n",
|
|
" mjz = sheet.cell(n,1).value\n",
|
|
" dict1[mzz] = mjz\n",
|
|
"fi_xls = os.getcwd() + '/北海炼化名单表(202110).xlsx'\n",
|
|
"wb = openpyxl.load_workbook(fi_xls)\n",
|
|
"sheet = wb.active\n",
|
|
"depart = {}\n",
|
|
"part = []\n",
|
|
"for n in range(2,sheet.max_row+1): \n",
|
|
" m_dm = str(sheet.cell(n,1).value)\n",
|
|
" m_depart = sheet.cell(n,5).value\n",
|
|
" depart[m_dm] = m_depart\n",
|
|
" if m_depart not in part:\n",
|
|
" part.append(m_depart)\n",
|
|
"filename = '脊柱症状自我诊断表统计.json'\n",
|
|
"result = {}\n",
|
|
"with open(filename,'r') as fl:\n",
|
|
" dict2 = json.load(fl) \n",
|
|
"#print(dict1)\n",
|
|
"for k, v in dict2.items():\n",
|
|
" result.setdefault(k,[])\n",
|
|
" for k1, v1 in v.items(): \n",
|
|
" for zz in v1:\n",
|
|
" if zz in dict1.keys():\n",
|
|
" result[k].append(zz)\n",
|
|
"for k in list(result.keys()):\n",
|
|
" if not result.get(k):\n",
|
|
" del result[k]\n",
|
|
"#print(result)\n",
|
|
"result1 = {}\n",
|
|
"#print(dict2)\n",
|
|
"for k, v in result.items():\n",
|
|
" result1.setdefault(depart[k],{})\n",
|
|
" for v1 in v:\n",
|
|
" result1[depart[k]].setdefault(v1,0)\n",
|
|
" result1[depart[k]][v1] += 1\n",
|
|
"#print(result1)\n",
|
|
"\n",
|
|
"wb = openpyxl.Workbook()\n",
|
|
"sheet = wb.active\n",
|
|
"i = 1\n",
|
|
"m_totle = 0\n",
|
|
"for name in part:\n",
|
|
" sheet[f'A{i}'] = name\n",
|
|
" i +=1\n",
|
|
" sheet[f'A{i}'] = '症状'\n",
|
|
" sheet[f'B{i}'] = '人数'\n",
|
|
" i +=1\n",
|
|
" m_sum = 0\n",
|
|
" new_dict = sorted(result1[name].items(), key = lambda kv:(kv[1], kv[0]),reverse=True)\n",
|
|
" for k, v in new_dict:\n",
|
|
" sheet[f'A{i}'] = k\n",
|
|
" sheet[f'B{i}'] = v\n",
|
|
" m_sum +=v\n",
|
|
" i +=1\n",
|
|
" sheet[f'A{i}'] = '合计'\n",
|
|
" sheet[f'B{i}'] = m_sum\n",
|
|
" m_totle = m_totle + m_sum\n",
|
|
" i +=2\n",
|
|
"sheet[f'A{i}'] = '总计'\n",
|
|
"sheet[f'B{i}'] = m_totle\n",
|
|
"wb.save('test3.xlsx')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "99fef05f-4141-4fa0-bbaf-bd39acafd68e",
|
|
"metadata": {},
|
|
"source": [
|
|
"### 全员统计(症状)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "31c80cb0-8a8c-408c-a888-cdcbd9963394",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import json\n",
|
|
"import openpyxl\n",
|
|
"import os,sys,shutil\n",
|
|
"\n",
|
|
"## 导入脊椎症状对照表\n",
|
|
"\n",
|
|
"\n",
|
|
"filename = '脊柱症状自我诊断表统计.json'\n",
|
|
"result = {}\n",
|
|
"with open(filename,'r') as fl:\n",
|
|
" dict2 = json.load(fl) \n",
|
|
"#print(dict1)\n",
|
|
"for k, v in dict2.items():\n",
|
|
" result.setdefault(k,[])\n",
|
|
" for k1, v1 in v.items(): \n",
|
|
" for zz in v1:\n",
|
|
" if zz in dict1.keys():\n",
|
|
" result[k].append(zz)\n",
|
|
"for k in list(result.keys()):\n",
|
|
" if not result.get(k):\n",
|
|
" del result[k]\n",
|
|
"\n",
|
|
"result1 = {}\n",
|
|
"#print(dict2)\n",
|
|
"for k, v in result.items():\n",
|
|
" \n",
|
|
" for v1 in v:\n",
|
|
" result1.setdefault(v1,0)\n",
|
|
" result1[v1] += 1\n",
|
|
"#print(result1)\n",
|
|
"\n",
|
|
"wb = openpyxl.Workbook()\n",
|
|
"sheet = wb.active\n",
|
|
"i = 1\n",
|
|
"m_totle = 0\n",
|
|
"sheet[f'A{i}'] = name\n",
|
|
"i +=1\n",
|
|
"sheet[f'A{i}'] = '症状'\n",
|
|
"sheet[f'B{i}'] = '人数'\n",
|
|
"i +=1\n",
|
|
"m_sum = 0\n",
|
|
"new_dict = sorted(result1.items(), key = lambda kv:(kv[1], kv[0]),reverse=True)\n",
|
|
"for k, v in new_dict:\n",
|
|
" sheet[f'A{i}'] = k\n",
|
|
" sheet[f'B{i}'] = v\n",
|
|
" m_sum +=v\n",
|
|
" i +=1\n",
|
|
"sheet[f'A{i}'] = '合计'\n",
|
|
"sheet[f'B{i}'] = m_sum\n",
|
|
"\n",
|
|
"wb.save('test3.xlsx')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "90083246-0378-4816-ace1-8a8a9151c3fc",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import json\n",
|
|
"import openpyxl\n",
|
|
"\n",
|
|
"## 导入脊椎症状对照表\n",
|
|
"wb = openpyxl.load_workbook('file/脊椎症状对应表.xlsx')\n",
|
|
"sheet = wb.active\n",
|
|
"dict1 = {}\n",
|
|
"'''for n in range(2,sheet.max_row+1):\n",
|
|
" mjz = sheet.cell(n,1).value\n",
|
|
" dict1.setdefault(mjz,[])\n",
|
|
" dict1[mjz].append(sheet.cell(n,2).value)\n",
|
|
"#print(dict1)'''\n",
|
|
"for n in range(2,sheet.max_row+1):\n",
|
|
" mzz = sheet.cell(n,2).value\n",
|
|
" mjz = sheet.cell(n,1).value\n",
|
|
" dict1[mzz] = mjz\n",
|
|
"#print(dict1)\n",
|
|
"filename = '脊柱症状自我诊断表统计.json'\n",
|
|
"result = {}\n",
|
|
"with open(filename,'r') as fl:\n",
|
|
" dict2 = json.load(fl) \n",
|
|
"#print(dict1)\n",
|
|
"for k, v in dict2.items():\n",
|
|
" result.setdefault(k,[])\n",
|
|
" for k1, v1 in v.items():\n",
|
|
" for zz in v1:\n",
|
|
" print(zz)\n",
|
|
" "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "f9e61ba9-38f8-4b61-bf1e-4e7bbde4f32c",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 心理健康量表统计导入"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "2475a1c3-c2e7-45d6-9685-32e28e606df5",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import openpyxl\n",
|
|
"import json\n",
|
|
"\n",
|
|
"wb = openpyxl.load_workbook('file/北海炼化公司职工心理健康量表统计.xlsx')\n",
|
|
"sheet = wb.active\n",
|
|
"\n",
|
|
"dict1 = {}\n",
|
|
"for n in range(2,sheet.max_row+1):\n",
|
|
" mdm = sheet.cell(n,1).value\n",
|
|
" dict1.setdefault(mdm,{})\n",
|
|
" dict2 = {}\n",
|
|
" list1 = [1,2,3,4,5,None]\n",
|
|
" for i in range(2,42):\n",
|
|
" #if sheet.cell(n,i).value not in list1:\n",
|
|
" # print(f'error!{mdm}--{sheet.cell(n,i).value}')\n",
|
|
" dict2[i-1] = sheet.cell(n,i).value\n",
|
|
" dict1[mdm] = dict2\n",
|
|
"filename = '北海炼化公司职工心理健康量表统计.json'\n",
|
|
"with open(filename,'w') as fl:\n",
|
|
" json.dump(dict1, fl,ensure_ascii=False) \n",
|
|
"print('ok')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "f400d470-d51e-4226-a1c4-54ac711c7f38",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 查询心理健康量表编号重复"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "61887c54-66be-4158-9721-7a995daf1745",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import openpyxl\n",
|
|
"\n",
|
|
"wb = openpyxl.load_workbook('file/北海炼化公司职工心理健康量表统计.xlsx')\n",
|
|
"sheet = wb.active\n",
|
|
"list1 = []\n",
|
|
"dict1 = {}\n",
|
|
"i = 0\n",
|
|
"for n in range(2,sheet.max_row+1):\n",
|
|
" mdm = sheet.cell(n,1).value\n",
|
|
" if mdm in list1:\n",
|
|
" print(F'{i}-{mdm}已存在!')\n",
|
|
" else:\n",
|
|
" list1.append(mdm)\n",
|
|
" i = i + 1\n",
|
|
" "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "641cc9a9-45b2-4b81-953c-75d3a27e35d5",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 统计导入JSON文件记录数"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "499a41ef-1b1f-4973-b733-8c322ac1ce09",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import json\n",
|
|
"filename = '脊柱症状统计汇总表.json'\n",
|
|
"item = {}\n",
|
|
"with open(filename,'r') as fl:\n",
|
|
" dict1 = json.load(fl) \n",
|
|
"\n",
|
|
"print(len(dict1))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "2d5d65e6-0b14-46a8-8636-ba4755dabafe",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 拆分调查报告PDF页面"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "d1b557c1-e34c-4b15-8a5b-fcd5e4b62a64",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import pdfplumber\n",
|
|
"import glob\n",
|
|
"import os,sys\n",
|
|
"import json\n",
|
|
"from PyPDF2 import PdfFileWriter, PdfFileReader, PdfFileMerger\n",
|
|
"\n",
|
|
"\n",
|
|
"filename = '北海炼化公司职工心理健康量表统计.json'\n",
|
|
"list1 = []\n",
|
|
"with open(filename,'r') as fl:\n",
|
|
" dict1 = json.load(fl)\n",
|
|
"'''\n",
|
|
"for k, v in dict1.items():\n",
|
|
" if None in v.values():\n",
|
|
" list1.append(k)\n",
|
|
"'''\n",
|
|
"\n",
|
|
"list1 = dict1.keys()\n",
|
|
"\n",
|
|
"fl_path = 'file/211027'\n",
|
|
"new_path ='file/split/'\n",
|
|
"old = glob.glob(f'{fl_path}/*.pdf')\n",
|
|
"old.sort()\n",
|
|
"\n",
|
|
"for old_file in old:\n",
|
|
" name = os.path.basename(old_file).split('.')[0]\n",
|
|
" if name in list1:\n",
|
|
" pdfWriter = PdfFileWriter()\n",
|
|
" pdf_reader = PdfFileReader(old_file)\n",
|
|
" n = pdf_reader.numPages\n",
|
|
" pdfWriter.addPage(pdf_reader.getPage(n-2))\n",
|
|
" split_file = f'{new_path}{name}.pdf'\n",
|
|
" with open(split_file, 'wb') as pdfOutputFile:\n",
|
|
" pdfWriter.write(pdfOutputFile)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "7b6d3d04-2844-4bf4-986c-503d62a39e84",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 拆分PDF指定F页"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "664c3aca-74e3-4a07-a141-a1dde3ef96e2",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import pdfplumber\n",
|
|
"import glob\n",
|
|
"import os,sys\n",
|
|
"import json\n",
|
|
"from PyPDF2 import PdfFileWriter, PdfFileReader, PdfFileMerger\n",
|
|
"\n",
|
|
"\n",
|
|
"filename = '北海炼化公司职工心理健康量表统计.json'\n",
|
|
"list1 = []\n",
|
|
"with open(filename,'r') as fl:\n",
|
|
" dict1 = json.load(fl)\n",
|
|
"'''\n",
|
|
"for k, v in dict1.items():\n",
|
|
" if None in v.values():\n",
|
|
" list1.append(k)\n",
|
|
"'''\n",
|
|
"\n",
|
|
"list1 = dict1.keys()\n",
|
|
"\n",
|
|
"fl_path = 'file/211027'\n",
|
|
"new_path ='file/split/'\n",
|
|
"old = glob.glob(f'{fl_path}/*.pdf')\n",
|
|
"old.sort()\n",
|
|
"\n",
|
|
"for old_file in old:\n",
|
|
" name = os.path.basename(old_file).split('.')[0]\n",
|
|
" pdfWriter = PdfFileWriter()\n",
|
|
" pdf_reader = PdfFileReader(old_file)\n",
|
|
" n = pdf_reader.numPages\n",
|
|
" pdfWriter.addPage(pdf_reader.getPage(n-1))\n",
|
|
" split_file = f'{new_path}{name}.pdf'\n",
|
|
" with open(split_file, 'wb') as pdfOutputFile:\n",
|
|
" pdfWriter.write(pdfOutputFile)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "4756d26b-5f4e-4a5c-abcd-a7c179ce5f1e",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.8.10"
|
|
},
|
|
"toc-showtags": false
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|