From cf24b2f9176bb873d83a88b546f2e8eb83fdd51d Mon Sep 17 00:00:00 2001 From: 512song Date: Sun, 18 Sep 2022 14:27:15 +0800 Subject: [PATCH] 20220918 --- 体质检测管理.ipynb | 258 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 220 insertions(+), 38 deletions(-) diff --git a/体质检测管理.ipynb b/体质检测管理.ipynb index 51a7822..a379410 100644 --- a/体质检测管理.ipynb +++ b/体质检测管理.ipynb @@ -531,6 +531,7 @@ "cell_type": "markdown", "id": "54d4790d-973f-4ee6-abff-3d5ff962de23", "metadata": { + "jp-MarkdownHeadingCollapsed": true, "tags": [], "toc-hr-collapsed": true }, @@ -840,7 +841,10 @@ { "cell_type": "markdown", "id": "95ad1920-1393-4830-a48a-540070b51a09", - "metadata": {}, + "metadata": { + "jp-MarkdownHeadingCollapsed": true, + "tags": [] + }, "source": [ "## 测试项目添加测试人员名单" ] @@ -884,7 +888,9 @@ { "cell_type": "markdown", "id": "2bb3cbdd-9fe1-4345-8c5a-53acb1a386de", - "metadata": {}, + "metadata": { + "tags": [] + }, "source": [ "## 获取人员测试成绩" ] @@ -892,7 +898,9 @@ { "cell_type": "markdown", "id": "8814b784-f561-455b-9125-b20672df2379", - "metadata": {}, + "metadata": { + "tags": [] + }, "source": [ "### 读取数据库获取人员测试成绩" ] @@ -982,15 +990,14 @@ " dict1 = json.load(fl) \n", "for k,v in dict1.items():\n", " item[k] = v\n", - "user_id = 5\n", - "place_id =130\n", - "#user = '包永'\n", + "#SQL语句为:\n", + "# SELECT a.item_id,a.performance,a.score,a.date AS DATE1,a.avatar_id,b.unit,b.name FROM places_result AS a,_zgshhgxs AS b WHERE a.place_id=135 AND a.avatar_id=b.id AND a.avatar_id < 4999\n", "\n", "re_ta = {}\n", "dict1 = {}\n", "list1 = []\n", "#print(\"\\n运动项目信息:\")\n", - "filename = 'data/130.csv'\n", + "filename = 'data/135.csv'\n", "with open(filename,'r',newline='') as csv_file:\n", " fl = csv.reader(csv_file,delimiter=',')\n", " header = next(fl) \n", @@ -1002,25 +1009,117 @@ " user = str(result[4])\n", " m_item = str(result[0]) \n", " re_ta.setdefault(user,{}) \n", + " re_ta[user]['name'] = str(result[6])\n", + " re_ta[user]['unit'] = str(result[5])\n", " item_name = item[m_item]['name']\n", - " re_ta[user].setdefault(item_name,{})\n", - " \n", - " #dict1.setdefault(item[m_item]['name'],{})\n", - " score = int(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].setdefault(item_name,{}) \n", + " score = int(result[1])/item[m_item]['divisor'] \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 = 'data/result_130.json'\n", + "filename = 'data/result_135.json'\n", "with open(filename,'w') as fl:\n", " json.dump(re_ta, fl) \n", "print('ok')\n", " " ] }, + { + "cell_type": "markdown", + "id": "3a8bcc00-867a-4979-a847-898b7d74ba8f", + "metadata": { + "execution": { + "iopub.execute_input": "2022-09-16T14:13:52.194299Z", + "iopub.status.busy": "2022-09-16T14:13:52.193060Z", + "iopub.status.idle": "2022-09-16T14:13:52.206727Z", + "shell.execute_reply": "2022-09-16T14:13:52.203175Z", + "shell.execute_reply.started": "2022-09-16T14:13:52.194189Z" + } + }, + "source": [ + "## 比照往年年度人员信息" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "db63511b-0467-4930-92fa-b0fa5c1ffde8", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "import json\n", + "\n", + "filename = 'data/安庆炼化人员名单.json'\n", + "with open(filename,'r') as fl:\n", + " dict1 = json.load(fl)\n", + "filename = 'result.json'\n", + "with open(filename,'r') as fl:\n", + " dict2 = json.load(fl)\n", + "dict3 = {}\n", + "for k, v in dict2.items():\n", + " #list1 = []\n", + " dict3.setdefault(k, {})\n", + " dict3[k]['name'] = dict1[k]['name']\n", + " dict3[k]['sex'] = dict1[k]['sex']\n", + " dict3[k]['unit'] = dict1[k]['unit']\n", + " \n", + " if 'id_num' in dict1[k].keys():\n", + " dict3[k]['id'] =dict1[k]['id_num'] \n", + " else:\n", + " dict3[k]['birth'] =dict1[k]['birth']\n", + " \n", + " for k1, v1 in v.items():\n", + " \n", + " dict3[k][k1] = v1\n", + " \n", + " \n", + "filename = 'data/result_安庆.json'\n", + "with open(filename,'w') as fl:\n", + " json.dump(dict3, fl,ensure_ascii=False) \n", + "print('ok')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cf304279-34c9-4086-95cf-e58321dc3210", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "import json\n", + "import openpyxl\n", + "\n", + "filename = 'data/result_安庆.json'\n", + "with open(filename,'r') as fl:\n", + " dict1 = json.load(fl)\n", + "dict2 = {}\n", + "filename = 'data/安庆石化2022.xlsx'\n", + "wb = openpyxl.load_workbook(filename)\n", + "sheet = wb.active\n", + "data1 =list(sheet.values)\n", + "del data1[0]\n", + "for item in data1:\n", + " id = item[5]\n", + " dict2[id] = [item[2],item[1],item[0],item[3],item[4]]\n", + "#print(dict2)\n", + "dict3 = {}\n", + "for k, v in dict1.items():\n", + " if 'id' in v.keys():\n", + " if v['id'] in dict2.keys():\n", + " v['old_code'] = int(k)\n", + " code = int(dict2[v['id']][1])\n", + " dict3.setdefault(code, {})\n", + " dict3[code] = v \n", + "filename = 'data/安庆2021.json'\n", + "with open(filename,'w') as fl:\n", + " json.dump(dict3, fl,ensure_ascii=False) \n", + "print('ok')\n", + " " + ] + }, { "cell_type": "markdown", "id": "2c1c84a7-2ca3-4d1a-ba9c-11c813875d7c", @@ -1039,16 +1138,9 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "id": "03a9d860-e343-4768-8fda-b11294fbc665", "metadata": { - "execution": { - "iopub.execute_input": "2022-09-12T00:14:20.615027Z", - "iopub.status.busy": "2022-09-12T00:14:20.613727Z", - "iopub.status.idle": "2022-09-12T00:14:22.286149Z", - "shell.execute_reply": "2022-09-12T00:14:22.283937Z", - "shell.execute_reply.started": "2022-09-12T00:14:20.614914Z" - }, "tags": [] }, "outputs": [], @@ -1058,7 +1150,7 @@ "\n", "items = ['体重','肺活量','握力','坐位体前屈','纵跳','俯卧撑','一分钟仰卧起坐','单脚站立','选择反应时','台阶指数']\n", "title = ['编号','姓名','BMI','肺活量','握力','坐位体前屈','纵跳','俯卧撑','一分钟仰卧起坐','单脚站立','选择反应时','台阶指数']\n", - "filename = 'data/result_cl.json'\n", + "filename = 'data/result_135.json'\n", "with open(filename,'r') as fl:\n", " dict1 = json.load(fl)\n", "\n", @@ -1066,16 +1158,17 @@ "for k, v in dict1.items():\n", " list2 = []\n", " list2.append(k)\n", - " list2.append(v['name'])\n", + " #list2.append(v['name'])\n", " for item in items:\n", + " print(item)\n", " if item in v.keys():\n", - " list2.append(v[item][1])\n", + " list2.append(v[item]['得分'])\n", + " elif item =='name':\n", + " list2.append(v[item])\n", " else:\n", - " list2.append('')\n", - " \n", - " \n", + " list2.append('') \n", " list1.append(list2)\n", - "filename = '长岭体检人员得分情况表.xlsx'\n", + "filename = '中石化销售得分情况表.xlsx'\n", "wb = openpyxl.Workbook()\n", "sheet = wb.active\n", "sheet.append(title)\n", @@ -1152,6 +1245,97 @@ "wb.save(filename) \n" ] }, + { + "cell_type": "markdown", + "id": "b633b350-3fe7-42d5-a832-b53ec1007a99", + "metadata": {}, + "source": [ + "## 获取单项成绩" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "957aaa4c-ef5f-4ff0-9ff4-a9a1faa8e7fd", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "import json\n", + "import openpyxl\n", + "\n", + "filename = 'data/result_安庆.json'\n", + "with open(filename,'r') as fl:\n", + " dict1 = json.load(fl)\n", + "list1 = []\n", + "title = ['测试编号','姓名','性别','部门','BMI得分']\n", + "for k, v in dict1.items():\n", + " #print(k)\n", + " if '体重' in v.keys() and v['体重']['得分'] is not None and v['体重']['得分'] < 3 :\n", + " #print(k,v['体重']['得分'])\n", + " list1.append([k,v['name'],v['sex'],v['unit'],v['体重']['得分']])\n", + "#print(list1)\n", + "filename = 'data/安庆BMI不合格人员.xlsx'\n", + "wb = openpyxl.Workbook()\n", + "sheet = wb.active\n", + "sheet.append(title)\n", + "for row in list1:\n", + " sheet.append(row)\n", + " \n", + "wb.save(filename)" + ] + }, + { + "cell_type": "markdown", + "id": "3a0188f1-bddf-4465-a886-e4b39f68a4fd", + "metadata": {}, + "source": [ + "## 获取BMI值" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "79b0ec91-e7c3-434c-afde-34a26d286a8d", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "import json\n", + "import openpyxl\n", + "\n", + "filename = 'data/result_安庆.json'\n", + "with open(filename,'r') as fl:\n", + " dict1 = json.load(fl)\n", + "list1 = []\n", + "title = ['测试编号','姓名','性别','部门','BMI得分','BMI值','超重参考']\n", + "for k, v in dict1.items():\n", + " #print(k)\n", + " if '体重' in v.keys() and v['体重']['得分'] is not None and v['体重']['得分'] < 3 :\n", + " h = v['身高']['成绩'].split(' ')[0]\n", + " w = v['体重']['成绩'].split(' ')[0]\n", + " bmi = float(w)/(float(h)/100)**2\n", + " #print(k,v['name'],h,w,bmi)\n", + " if bmi > 22.00: \n", + " if bmi >=24.00 and bmi<28.00:\n", + " pd = '偏胖'\n", + " if bmi >=28:\n", + " pd = '肥胖'\n", + " s = \"{:.2f}\".format(bmi)\n", + " print(k,v['体重']['得分'],s,pd)\n", + " list1.append([k,v['name'],v['sex'],v['unit'],v['体重']['得分'],s,pd])\n", + "filename = 'data/安庆BMI不合格人员.xlsx'\n", + "wb = openpyxl.Workbook()\n", + "sheet = wb.active\n", + "sheet.append(title)\n", + "for row in list1:\n", + " sheet.append(row)\n", + " \n", + "wb.save(filename)" + ] + }, { "cell_type": "markdown", "id": "95df2637-7898-4446-bb8a-70d881bd9e44", @@ -1224,7 +1408,7 @@ "import json\n", "import openpyxl\n", "\n", - "filename = 'data/result_130.json'\n", + "filename = 'data/result_cl.json'\n", "with open(filename,'r') as fl:\n", " dict1 = json.load(fl)\n", "list1 = []\n", @@ -1248,7 +1432,7 @@ " col1[item] = s[n+1]\n", " n += 2\n", "#print(col)\n", - "filename = 'data/130人员得分情况表.xlsx'\n", + "filename = 'data/cl人员得分情况表.xlsx'\n", "wb = openpyxl.Workbook()\n", "sheet = wb.active\n", "sheet['A1'] = '测试编号'\n", @@ -1477,13 +1661,11 @@ "outputs": [], "source": [ "import json\n", - "filename = 'item.json'\n", + "filename = 'data/result_135.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'])" + "print(len(dict1))" ] }, {