{ "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": {}, "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": {}, "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": {}, "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": {}, "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": "ee84a3ce-deb7-4345-a4a4-877872996e1c", "metadata": { "tags": [] }, "outputs": [], "source": [ "import json\n", "import openpyxl\n", "\n", "items = ['bmi','lung','grip','flexion','jump','pushup','situp','balance','reaction','step']\n", "bmi = ['height','weight']\n", "\n", "\n", "filename = 'data/727410_pdf.json'\n", "with open(filename,'r') as fl:\n", " list2 = json.load(fl)\n", "\n", "filename = 'data/result_东营老年大学1.json'\n", "with open(filename,'r') as fl:\n", " dict1 = json.load(fl) \n", " \n", "\n", "for xm in list2: \n", " id = xm['id']\n", " if str(id) in dict1.keys():\n", " #print(id,xm['name'])\n", " for item in xm['fits'].keys():\n", " y_score = xm['fits'][item]['score']\n", " if item not in dict1[str(id)].keys() or y_score != dict1[str(id)][item]['score']:\n", " print(id,xm['name'],item,'no')" ] }, { "cell_type": "markdown", "id": "e76ef95a-25dc-45f2-8b8c-617acbf546c1", "metadata": {}, "source": [ "## 更新人员手机号码" ] }, { "cell_type": "code", "execution_count": null, "id": "37e24019-9b79-4748-ae6a-2bdb6052862d", "metadata": { "tags": [] }, "outputs": [], "source": [ "import openpyxl\n", "import json\n", "from datetime import date\n", "\n", "filename = 'data/东营老年大学.json'\n", "with open(filename,'r') as fl:\n", " dict1 = json.load(fl) \n", "\n", "\n", "wb = openpyxl.load_workbook('data/东营老年大学电话.xlsx')\n", "sheet = wb.active\n", "# sheets = wb.sheetnames\n", "person = {}\n", "\n", "for n in range(2, sheet.max_row+1):\n", " code = str(sheet.cell(n, 3).value)\n", " phone = sheet.cell(n, 1).value\n", " if code in dict1.keys():\n", " print(phone,code,dict1[code]['phone'])\n", " dict1[code]['phone'] = phone\n", " \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": "7ac62aed-6256-4bd2-a563-5f6e34504121", "metadata": {}, "source": [ "## 核对人员手机号码" ] }, { "cell_type": "code", "execution_count": null, "id": "42b7cd7d-3446-4abf-91f2-c85d447231e9", "metadata": {}, "outputs": [], "source": [ "import openpyxl\n", "import json\n", "from datetime import date\n", "\n", "filename = 'data/东营老年大学.json'\n", "with open(filename,'r') as fl:\n", " dict1 = json.load(fl) \n", "\n", "\n", "wb = openpyxl.load_workbook('data/6.20日北体花名册.xlsx')\n", "sheet = wb.active\n", "# sheets = wb.sheetnames\n", "dict2 = {}\n", "\n", "for n in range(3, sheet.max_row+1):\n", " phone = int(sheet.cell(n, 3).value)\n", " \n", " dict2[phone] = sheet.cell(n, 2).value\n", "i = 1\n", "for k, v in dict1.items():\n", " if 'phone' in v.keys() and v['phone'] in dict2.keys() :\n", " print(i,v['name'],dict2[v['phone']])\n", " i+=1" ] }, { "cell_type": "code", "execution_count": null, "id": "bd4b91e9-289c-4f21-aab6-846b5f98c493", "metadata": {}, "outputs": [], "source": [ "%reset -f\n", "\n", "import openpyxl\n", "import json\n", "from datetime import date\n", "\n", "\n", "filename = 'data/东营老年大学.json'\n", "with open(filename,'r') as fl:\n", " dict1 = json.load(fl) \n", "\n", "dict2 = {}\n", "for k, v in dict1.items():\n", " if 'phone' in v.keys():\n", " dict2[v['phone']] = v['name']\n", "wb = openpyxl.load_workbook('data/6.20日北体花名册.xlsx')\n", "sheet = wb.active\n", "# sheets = wb.sheetnames\n", "\n", "\n", "for n in range(3, sheet.max_row+1):\n", " phone = int(sheet.cell(n, 3).value)\n", " if phone not in dict2.keys():\n", " print(sheet.cell(n, 2).value)\n", " \n", "print(dict2) " ] }, { "cell_type": "markdown", "id": "dacbf0e8-f456-478f-8253-2824d68d092c", "metadata": {}, "source": [ "## 合并分日测试信息" ] }, { "cell_type": "code", "execution_count": 30, "id": "162364f8-8ae9-4bbb-8fb1-e9181ececf02", "metadata": { "execution": { "iopub.execute_input": "2024-09-14T12:37:55.393433Z", "iopub.status.busy": "2024-09-14T12:37:55.392657Z", "iopub.status.idle": "2024-09-14T12:37:55.424141Z", "shell.execute_reply": "2024-09-14T12:37:55.423583Z", "shell.execute_reply.started": "2024-09-14T12:37:55.393359Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "170\n" ] } ], "source": [ "import json\n", "from datetime import date\n", "\n", "filename = 'data/result_北体体质康健1.json'\n", "with open(filename,'r') as fl:\n", " dict1 = json.load(fl) \n", "filename = 'data/result_北体体质康健2.json'\n", "with open(filename,'r') as fl:\n", " dict2 = json.load(fl) \n", "\n", "n = 50\n", "for k, v in dict2.items():\n", " dict1[n+int(k)] = v\n", " \n", "filename = 'data/result_北体体质康健.json'\n", "with open(filename,'w') as fl:\n", " json.dump(dict1, fl, ensure_ascii=False) \n", "print(len(dict1))" ] }, { "cell_type": "markdown", "id": "ddda3101-052a-45c5-87af-65333b4ba141", "metadata": {}, "source": [ "## 补充问卷人员信息" ] }, { "cell_type": "code", "execution_count": 29, "id": "8e025cb5-8c9f-4eb9-a66e-863df32881c8", "metadata": { "execution": { "iopub.execute_input": "2024-09-14T12:37:09.151657Z", "iopub.status.busy": "2024-09-14T12:37:09.150889Z", "iopub.status.idle": "2024-09-14T12:37:09.186568Z", "shell.execute_reply": "2024-09-14T12:37:09.186032Z", "shell.execute_reply.started": "2024-09-14T12:37:09.151586Z" } }, "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", "filename = 'data/result_北体体质康健.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", "for n in range(1, sheet.max_row+1):\n", " code = str(sheet.cell(n, 1).value)\n", " if code in dict1.keys(): \n", " if sheet.cell(n,5).value is not None:\n", " dict1[code]['phone'] = str(sheet.cell(n,5).value)\n", " else:\n", " dict1[code]= dict2[code]\n", " rq = '2024-09-14'\n", " birth = dict2[code]['birth']\n", " days = (rq-birth).days \n", " dict1[code]['age'] = int(days/365)\n", " dict1[code]['month'] = int(days/365*12)\n", " \n", "filename = 'data/result_北体体质康健.json'\n", "with open(filename, 'w') as fl:\n", " json.dump(dict1, fl, ensure_ascii=False)\n", "print('ok')" ] }, { "cell_type": "code", "execution_count": 33, "id": "ef75192e-a6ec-4d72-88b4-7645ce6d0aed", "metadata": { "execution": { "iopub.execute_input": "2024-09-14T12:43:31.977618Z", "iopub.status.busy": "2024-09-14T12:43:31.976867Z", "iopub.status.idle": "2024-09-14T12:43:31.999628Z", "shell.execute_reply": "2024-09-14T12:43:31.999148Z", "shell.execute_reply.started": "2024-09-14T12:43:31.977549Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ok\n" ] } ], "source": [ "import json\n", "from datetime import date\n", "filename = 'data/result_北体体质康健2.json'\n", "with open(filename,'r') as fl:\n", " dict1 = json.load(fl) \n", "for k,v in dict1.items():\n", " if 'month' not in v.keys():\n", " rq = date.fromisoformat(v['rq'])\n", " birth = date.fromisoformat(v['birth'])\n", " days = (rq-birth).days \n", " dict1[k]['age'] = int(days/365)\n", " dict1[k]['month'] = int(days/365*12)\n", "with open(filename, 'w') as fl:\n", " json.dump(dict1, fl, ensure_ascii=False)\n", "print('ok') " ] }, { "cell_type": "code", "execution_count": 36, "id": "99c612c8-aa47-4ed8-b866-c8d2edcaea4b", "metadata": { "execution": { "iopub.execute_input": "2024-09-14T12:45:56.907974Z", "iopub.status.busy": "2024-09-14T12:45:56.907231Z", "iopub.status.idle": "2024-09-14T12:46:35.198207Z", "shell.execute_reply": "2024-09-14T12:46:35.197069Z", "shell.execute_reply.started": "2024-09-14T12:45:56.907903Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "79\n" ] } ], "source": [ "import requests\n", "import json\n", "import openpyxl\n", "\n", "\n", "headers = {\n", " \"Content-Type\": \"application/json; charset=UTF-8\"\n", " }\n", "filename = 'data/result_北体体质康健2.json'\n", "with open(filename,'r') as fl:\n", " dict1 = json.load(fl)\n", "list1 = []\n", "file_path ='./北体体质康健班/'\n", "list_item = ['lung','grip','flexion','jump','pushup','balance','reaction','step','situp','bmi']\n", "i=0\n", "list2 = []\n", "for k, v in dict1.items():\n", " list1 = []\n", " mydata = {}\n", " \n", " id = str(k).rjust(4,\"0\")\n", " mydata['path'] = file_path+id+'-'+ v['name']+'.pdf'\n", " mydata['title'] = '北体体质康健班'\n", " mydata['subtitle'] = ''\n", " mydata['id'] = id\n", " mydata['name'] = v['name']\n", " if v['sex'] == '男':\n", " mydata['gender'] = 'male'\n", " else:\n", " mydata['gender'] = 'female'\n", " \n", " mydata['month'] = v['month']\n", " mydata['fits'] = {}\n", " survey_list = ['tcm','psy','spine']\n", " for item in survey_list:\n", " if item in v.keys():\n", " mydata.setdefault('surveys',{})\n", " mydata['surveys'][item] = v[item]\n", " \n", " \n", " #mydata['fits'] = {}\n", " for item in list_item:\n", " if item in v.keys():\n", " mydata.setdefault('fits',{})\n", " if item in ['lung','pushup','step','situp']:\n", " mark = v[item]['成绩'].split()[0].split('.')[0]\n", " else:\n", " mark = v[item]['成绩'].split()[0]\n", " mydata['fits'][item] = {'mark':mark,'score':v[item]['score']}\n", " if len(mydata['fits']) >2 : \n", " list1.append(mydata)\n", " list2.append([k,v['name']])\n", " i+=1\n", " x = requests.post('http://localhost:3003', data = json.dumps(list1), headers=headers)\n", " #print(id,v['name'],x.text)\n", " #print(mydata)\n", " #x.close()\n", "print(i)" ] }, { "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 }