{ "cells": [ { "cell_type": "markdown", "id": "04524c85-988e-4dbf-86eb-939a9db7aa28", "metadata": {}, "source": [ "## 体测人员导入" ] }, { "cell_type": "code", "execution_count": 2, "id": "bbba6efc-73cd-4db6-bae7-014724fee731", "metadata": { "execution": { "iopub.execute_input": "2024-09-18T02:16:02.586698Z", "iopub.status.busy": "2024-09-18T02:16:02.585914Z", "iopub.status.idle": "2024-09-18T02:16:02.620560Z", "shell.execute_reply": "2024-09-18T02:16:02.620084Z", "shell.execute_reply.started": "2024-09-18T02:16:02.586621Z" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ok\n" ] } ], "source": [ "import openpyxl\n", "import json\n", "from datetime import date\n", "\n", "wb = openpyxl.load_workbook('data/北体体质康健.xlsx')\n", "sheet = wb.active\n", "# sheets = wb.sheetnames\n", "person = {}\n", "\n", "for n in range(1, sheet.max_row+1):\n", " code = int(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'] = '北体体质康健班'\n", " dict1['birth'] = str(sheet.cell(n, 4).value).replace('/','-').split(' ')[0]\n", " if sheet.cell(n,5).value is not None:\n", " dict1['phone'] = str(sheet.cell(n,5).value) \n", " person[code] = dict1\n", "filename = 'data/北体体质康健.json'\n", "with open(filename, 'w') as fl:\n", " json.dump(person, fl, ensure_ascii=False)\n", "print('ok')" ] }, { "cell_type": "markdown", "id": "6bcd45c2-10af-4d5f-9e0b-5cd1df4f7a7f", "metadata": { "jp-MarkdownHeadingCollapsed": true }, "source": [ "## 获取人员测试成绩" ] }, { "cell_type": "code", "execution_count": 5, "id": "970e171e-1360-448f-a28c-520ccb8f314a", "metadata": { "execution": { "iopub.execute_input": "2024-09-18T02:17:10.941442Z", "iopub.status.busy": "2024-09-18T02:17:10.940669Z", "iopub.status.idle": "2024-09-18T02:17:10.997800Z", "shell.execute_reply": "2024-09-18T02:17:10.997322Z", "shell.execute_reply.started": "2024-09-18T02:17:10.941368Z" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "87\n", "87\n" ] } ], "source": [ "import json\n", "import datetime\n", "import csv\n", "from datetime import date\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", "item['1']['en'] = 'lung'\n", "item['2']['en'] = 'grip'\n", "item['3']['en'] = 'flexion'\n", "item['4']['en'] = 'jump'\n", "item['5']['en'] = 'pushup'\n", "item['6']['en'] = 'balance'\n", "item['7']['en'] = 'reaction'\n", "item['8']['en'] = 'step'\n", "item['9']['en'] = 'situp'\n", "item['10']['en'] = 'height'\n", "item['11']['en'] = 'weight'\n", "\n", "\n", "re_ta = {}\n", "dict1 = {}\n", "list1 = []\n", "filename = 'data/北体体质康健.json'\n", "with open(filename,'r') as fl:\n", " dict1 = json.load(fl) \n", "\n", "filename = 'data/places_result_20240918.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", " #line = re.sub('[\\r\\n\\f ]{1,}', '', line)\n", " list1.append(line)\n", "#f_item = ['lung','grip','flexion','jump','balance','reaction','step','situp']\n", "#m_item = ['lung','grip','flexion','jump','pushup','balance','reaction','step']\n", "for result in list1:\n", " user = str(result[2])\n", " rq = date.fromisoformat(result[6].replace('/','-'))\n", " if user in dict1.keys():\n", " l_xm = []\n", " m_item = str(result[3]) \n", " re_ta.setdefault(user,{}) \n", " re_ta[user]['name'] = dict1[user]['name']\n", " re_ta[user]['sex'] = dict1[user]['sex']\n", " if 'phone' in dict1[user].keys():\n", " re_ta[user]['phone'] = dict1[user]['phone']\n", " if dict1[user]['sex'] == '男':\n", " l_xm = ['weight','height','lung','grip','flexion','jump','pushup','balance','reaction','step']\n", " else:\n", " l_xm = ['weight','height','lung','grip','flexion','jump','balance','reaction','step','situp']\n", " re_ta[user]['unit'] = dict1[user]['unit']\n", " #birth = date.fromisoformat(dict1[user]['birth'].replace('/','-'))\n", " birth = date.fromisoformat(dict1[user]['birth'])\n", " #nian = int(birth[0].strip())\n", " #yue = int(birth[1].strip())\n", " #ri = int(birth[2].strip())\n", " #print(k,nian,yue,ri)\n", " item_name = item[m_item]['en'] \n", " if item_name in l_xm: \n", " days = (rq-birth).days \n", " re_ta[user]['age'] = int(days/365)\n", " re_ta[user]['month'] = int(days/365*12)\n", " re_ta[user]['rq'] = result[6]\n", "\n", "\n", " re_ta[user].setdefault(item_name,{}) \n", " score = int(result[4])/item[m_item]['divisor'] \n", " re_ta[user][item_name]['成绩'] = f'{score} {item[m_item][\"unit\"]}'\n", "print(len(re_ta))\n", "filename = 'data/result_北体体质康健.json'\n", "\n", "with open(filename,'w') as fl:\n", " json.dump(re_ta, fl, ensure_ascii=False) \n", "print(len(re_ta))" ] }, { "cell_type": "markdown", "id": "d034a61d-1fbd-417b-99bd-277e43ebb678", "metadata": { "jp-MarkdownHeadingCollapsed": true }, "source": [ "## 导出测试人员信息" ] }, { "cell_type": "code", "execution_count": null, "id": "0c60a509-dfc0-426a-a44e-e9a760139463", "metadata": { "tags": [] }, "outputs": [], "source": [ "import json\n", "import openpyxl\n", "\n", "items = ['lung','grip','flexion','jump','pushup','situp','balance','reaction','step']\n", "bmi = ['height','weight']\n", "title = ['编号','姓名','性别','身高','体重','bmi','肺活量','','握力','','坐位体前屈','','纵跳','','俯卧撑','','一分钟仰卧起坐','','单脚站立','','选择反应时','','台阶指数']\n", "\n", "filename = 'data/727410_pdf.json'\n", "with open(filename,'r') as fl:\n", " list2 = json.load(fl)\n", "\n", "list1 = []\n", "for xm in list2: \n", " list2 = []\n", " list2.append(xm['id'].rjust(3,'0'))\n", " list2.append(xm['name']) \n", " list2.append(xm['gender']) \n", " \n", " i = 0\n", " if 'bmi' in xm['fits'].keys():\n", " m_bmi = xm['fits']['bmi']['mark']\n", " list2.append(m_bmi.split(',')[0])\n", " list2.append(m_bmi.split(',')[1])\n", " list2.append(xm['fits']['bmi']['score'])\n", " i+=1\n", " else:\n", " list2.append('') \n", " list2.append('') \n", " list2.append('') \n", "\n", "\n", " for item in items:\n", " if item in xm['fits'].keys():\n", " list2.append(xm['fits'][item]['mark'])\n", " list2.append(xm['fits'][item]['score']) \n", " i+=1\n", " #elif item =='name':\n", " # list2.append(dict1[k][item])\n", " else:\n", " list2.append('') \n", " list2.append('') \n", " print(list2)\n", " if i>2:\n", " list1.append(list2)\n", "filename = 'data/东营老年大学体测情况表.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)\n", "print('ok') " ] }, { "cell_type": "markdown", "id": "d794e69d-9444-4765-9b7d-8dcb0f8c4343", "metadata": { "jp-MarkdownHeadingCollapsed": true }, "source": [ "## 导入问卷信息" ] }, { "cell_type": "code", "execution_count": 24, "id": "79fb7799-3693-4b7b-ae82-c0d8dee98d36", "metadata": { "execution": { "iopub.execute_input": "2024-09-14T11:49:21.331114Z", "iopub.status.busy": "2024-09-14T11:49:21.330310Z", "iopub.status.idle": "2024-09-14T11:49:21.362941Z", "shell.execute_reply": "2024-09-14T11:49:21.362399Z", "shell.execute_reply.started": "2024-09-14T11:49:21.331031Z" }, "tags": [] }, "outputs": [], "source": [ "import json\n", "import csv\n", "import openpyxl\n", "import time\n", "from datetime import date\n", "\n", "dict1 = {}\n", "\n", "filename = 'data/result_北体体质康健.json'\n", "with open(filename,'r') as fl:\n", " dict3 = json.load(fl)\n", "\n", "\n", "list1 = []\n", "filename = 'data/Survey_20240914.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", " list1.append(line)\n", "#print(list1)\n", "dict2 = {}\n", "\n", "for item in list1:\n", " psy = []\n", " tcm = []\n", " spine = []\n", " for i in range(0,45):\n", " psy.append(0)\n", " for i in range(0,60):\n", " tcm.append(0)\n", " for i in range(0,26):\n", " spine.append(0)\n", " phone = item[2]\n", " for k1, v1 in dict3.items():\n", " if 'phone' in v1.keys() and phone ==v1['phone']: \n", " dict1[k1] = dict3[k1]\n", " #dict1[k1]['month'] = dict1[k1]['age'] *12\n", "#print(dict1)\n", "for item in list1:\n", " #print(item)\n", " psy = []\n", " tcm = []\n", " spine = []\n", " for i in range(0,45):\n", " psy.append(0)\n", " for i in range(0,60):\n", " tcm.append(0)\n", " for i in range(0,26):\n", " spine.append(0)\n", " phone = item[2]\n", " for k1, v1 in dict1.items():\n", " #print((k1,v1))\n", " if phone ==v1['phone']: \n", " content = json.loads(item[5])\n", " #print(content)\n", " \n", " rq = date.fromisoformat(item[6].replace('/','-').split(' ')[0])\n", " #dict1[phone[item[2]]]['rq'] = date.fromisoformat(item[6].replace('/','-').split(' ')[0])\n", " for k, v in content.items():\n", " #print('k:',k,'v:',v)\n", " if 'psyOld' in k: \n", " i = int(k[6:])\n", " psy[i-1] = int(v)\n", " if 'tcm' in k: \n", " i = int(k[3:])\n", " tcm[i-1] = int(v)\n", " if 'spine' in k:\n", " i = int(k[5:])\n", " spine[i-1] = int(v)\n", " if 'psyOld' in item[5]:\n", " #for i in range(5,26):\n", " # new_valve = 5-psy[i]\n", " # psy[i] = new_valve\n", " for i in range(26,40):\n", " new_valve = 1+psy[i]\n", " psy[i] = new_valve\n", " psy[44] = []\n", " dict1[k1]['psy'] = psy\n", " if 'tcm' in item[5]:\n", " if tcm[40] ==0:\n", " tcm[40] =1\n", " dict1[k1]['tcm'] = tcm\n", " if 'spine' in item[5]:\n", " for ii in range(25,23,-1):\n", " \n", " spine[ii] = spine[ii-1]\n", " \n", " spine[22] = 0\n", " \n", " \n", " \n", " dict1[k1]['spine'] = spine\n", " #birth = date.fromisoformat(dict3[k1]['birth'].replace('/','-'))\n", "\n", " #days = (rq-birth).days \n", " #dict1[k1]['age'] = int(days/365)\n", " \n", " dict1[k1]['rq'] = item[6].replace('/','-').split(' ')[0]\n", "#print(dict1)\n", "filename = 'data/result_北体体质康健1.json'\n", "\n", "with open(filename,'w') as fl:\n", " json.dump(dict1, fl, ensure_ascii=False) " ] }, { "cell_type": "markdown", "id": "9f9111f1-8cf0-4d45-b9b2-e3b631023581", "metadata": { "jp-MarkdownHeadingCollapsed": true }, "source": [ "## 获取问卷人员信息" ] }, { "cell_type": "code", "execution_count": null, "id": "d1d02189-e01a-4d7f-9fbb-09b5e72a38df", "metadata": { "tags": [] }, "outputs": [], "source": [ "import json\n", "import csv\n", "import openpyxl\n", "import time\n", "from datetime import date\n", "\n", "dict1 = {}\n", "\n", "filename = 'data/result_东营老年大学.json'\n", "with open(filename,'r') as fl:\n", " dict3 = json.load(fl)\n", "\n", "\n", "list1 = []\n", "filename = 'data/Survey_20240321.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", " list1.append(line)\n", "\n", "\n", "list2 = []\n", "for item in list1:\n", " list3 = []\n", " phone = item[2]\n", " content = json.loads(item[5])\n", " name = content['name']\n", " gender = content['gender']\n", " unit = content['unit']\n", " list2.append([name,phone,gender,unit])\n", "filename = 'data/东营老年大学问卷人员表.xlsx'\n", "wb = openpyxl.Workbook()\n", "sheet = wb.active\n", "\n", "for row in list2:\n", " sheet.append(row)\n", " \n", "wb.save(filename)\n", "print('ok') " ] }, { "cell_type": "code", "execution_count": null, "id": "eb4091f4-9823-4361-acb2-f3e898f9524b", "metadata": { "tags": [] }, "outputs": [], "source": [ "import json\n", "import csv\n", "import openpyxl\n", "import time\n", "from datetime import date\n", "\n", "dict1 = {}\n", "\n", "filename = 'data/result_东营老年大学.json'\n", "with open(filename,'r') as fl:\n", " dict3 = json.load(fl)\n", "\n", "\n", "list1 = []\n", "filename = 'data/Survey_20240321.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", " list1.append(line)\n", "#print(list1)\n", "dict2 = {}\n", "\n", "for item in list1:\n", " psy = []\n", " tcm = []\n", " spine = []\n", " for i in range(0,45):\n", " psy.append(0)\n", " for i in range(0,60):\n", " tcm.append(0)\n", " for i in range(0,26):\n", " spine.append(0)\n", " phone = item[2]\n", " for k1, v1 in dict3.items():\n", " if 'phone' in v1.keys() and phone ==v1['phone']: \n", " dict1[k1] = dict3[k1]\n", " #dict1[k1]['month'] = dict1[k1]['age'] *12\n", "#print(dict1)\n", "for item in list1:\n", " #print(item)\n", " psy = []\n", " tcm = []\n", " spine = []\n", " for i in range(0,45):\n", " psy.append(0)\n", " for i in range(0,60):\n", " tcm.append(0)\n", " for i in range(0,26):\n", " spine.append(0)\n", " phone = item[2]\n", " for k1, v1 in dict1.items():\n", " #print((k1,v1))\n", " if 'phone' in v1.keys() and phone ==v1['phone']: \n", " content = json.loads(item[5])\n", " #print(content)\n", " \n", " rq = date.fromisoformat(item[6].replace('/','-').split(' ')[0])\n", " #dict1[phone[item[2]]]['rq'] = date.fromisoformat(item[6].replace('/','-').split(' ')[0])\n", " for k, v in content.items():\n", " #print('k:',k,'v:',v)\n", " if 'psyOld' in k: \n", " i = int(k[6:])\n", " psy[i-1] = int(v)\n", " if 'tcm' in k: \n", " i = int(k[3:])\n", " tcm[i-1] = int(v)\n", " if 'spine' in k:\n", " i = int(k[5:])\n", " spine[i-1] = int(v)\n", " if 'psyOld' in item[5]:\n", " #for i in range(5,26):\n", " # new_valve = 5-psy[i]\n", " # psy[i] = new_valve\n", " for i in range(26,40):\n", " new_valve = 1+psy[i]\n", " psy[i] = new_valve\n", " psy[44] = []\n", " dict1[k1]['psy'] = psy\n", " if 'tcm' in item[5]:\n", " if tcm[40] ==0:\n", " tcm[40] =1\n", " dict1[k1]['tcm'] = tcm\n", " if 'spine' in item[5]:\n", " for ii in range(25,23,-1):\n", " \n", " spine[ii] = spine[ii-1]\n", " \n", " spine[22] = 0\n", " \n", " \n", " \n", " dict1[k1]['spine'] = spine\n", " #birth = date.fromisoformat(dict3[k1]['birth'].replace('/','-'))\n", "\n", " #days = (rq-birth).days \n", " #dict1[k1]['age'] = int(days/365)\n", " \n", " dict1[k1]['rq'] = item[6].replace('/','-').split(' ')[0]\n", "#print(dict1)\n", "filename = 'data/result_东营老年大学1.json'\n", "\n", "with open(filename,'w') as fl:\n", " json.dump(dict1, fl, ensure_ascii=False) " ] }, { "cell_type": "markdown", "id": "a8dbc7ae-cf00-4591-8572-600c39b37750", "metadata": {}, "source": [ "## 核对人员成绩" ] }, { "cell_type": "code", "execution_count": null, "id": "1e617679-6d57-4389-bc84-4e14e63616f1", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.12.3" } }, "nbformat": 4, "nbformat_minor": 5 }