1345 lines
40 KiB
Plaintext
1345 lines
40 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "f501bde1-90cb-40c4-9dd4-533c27f81be5",
|
||
"metadata": {
|
||
"tags": [],
|
||
"toc-hr-collapsed": true
|
||
},
|
||
"source": [
|
||
"# 调查报告线下数据管理"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "ced4bf30-e7ea-4c4c-ae46-8720ffc07a76",
|
||
"metadata": {},
|
||
"source": [
|
||
"## 羊庙人员信息导入"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "9b2b755e-049e-48c5-87d3-dd37dceb59fe",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import json\n",
|
||
"\n",
|
||
"filename = 'data/羊庙测试人员信息.json'\n",
|
||
"\n",
|
||
"with open(filename,'r') as fl:\n",
|
||
" dict1 = json.load(fl) \n",
|
||
"dict2 = {}\n",
|
||
"for k,v in dict1.items():\n",
|
||
" for item in v:\n",
|
||
" bh = item['avatar_id']\n",
|
||
" del item['avatar_id']\n",
|
||
" dict2[bh] = item\n",
|
||
"filename = 'data/羊庙人员名单.json'\n",
|
||
"with open(filename, 'w') as fl:\n",
|
||
" json.dump(dict2, fl, ensure_ascii=False,default=str)\n",
|
||
"print('ok')"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "00e9f538-c0f5-46a0-b768-51480ad3fbaf",
|
||
"metadata": {},
|
||
"source": [
|
||
"## 获取参加体测人员编号"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "d89e0e5e-0782-40a3-bba3-862cc9865d4e",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import json\n",
|
||
"import time\n",
|
||
"import csv\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",
|
||
"re_ta = {}\n",
|
||
"dict1 = {}\n",
|
||
"list1 = []\n",
|
||
"#print(\"\\n运动项目信息:\")\n",
|
||
"filename = 'data/140.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",
|
||
"list2 = []\n",
|
||
"for result in list1:\n",
|
||
" user = int(result[2])\n",
|
||
" if user not in list2:\n",
|
||
" list2.append(user)\n",
|
||
"list2.sort()\n",
|
||
"print(len(list2))\n",
|
||
"print(list2)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "2c48f588-135a-4d1a-b01e-96222b70b987",
|
||
"metadata": {},
|
||
"source": [
|
||
"## 根据风险筛选统计卡获取信息"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "e76837e8-cdf4-41e0-9d51-6ae5223de813",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import openpyxl\n",
|
||
"import json\n",
|
||
"import time\n",
|
||
"\n",
|
||
"wb = openpyxl.load_workbook('data/杨庙运动风险筛查统计表.xlsx')\n",
|
||
"sheet = wb.active\n",
|
||
"person = {}\n",
|
||
"for n in range(2, sheet.max_row+1):\n",
|
||
" code = int(sheet.cell(n, 1).value)\n",
|
||
" person.setdefault(code, {})\n",
|
||
" dict1 = {}\n",
|
||
" if sheet.cell(n, 8).value is not None:\n",
|
||
" name = sheet.cell(n, 8).value\n",
|
||
" else:\n",
|
||
" name ='不详'\n",
|
||
" dict1['name'] = name\n",
|
||
" if sheet.cell(n, 9).value is not None:\n",
|
||
" dict1['birth'] = str(sheet.cell(n, 9).value).split(' ')[0]\n",
|
||
" if sheet.cell(n, 10).value is not None:\n",
|
||
" dict1['phone'] = str(sheet.cell(n, 10).value)\n",
|
||
" if sheet.cell(n,11).value is not None:\n",
|
||
" dict1['id_num'] = sheet.cell(n,11).value\n",
|
||
" person[code] = dict1\n",
|
||
"print(len(person))\n",
|
||
"filename = 'data/杨庙运动风险筛查统计表信息.json'\n",
|
||
"with open(filename, 'w') as fl:\n",
|
||
" json.dump(person, fl, ensure_ascii=False,default=str)\n",
|
||
"print('ok')"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "6cc6b614-85e2-43fd-bc97-301fc776fe29",
|
||
"metadata": {},
|
||
"source": [
|
||
"## 根据恢复版获取信息"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "1293cdaa-1fdf-43a5-99ce-a031a76f6688",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import openpyxl\n",
|
||
"import json\n",
|
||
"import time\n",
|
||
"\n",
|
||
"wb = openpyxl.load_workbook('data/羊庙恢复版.xlsx')\n",
|
||
"sheet = wb.active\n",
|
||
"person = {}\n",
|
||
"for n in range(2, sheet.max_row+1):\n",
|
||
" if sheet.cell(n, 4).value is not None: \n",
|
||
" code = int(sheet.cell(n, 4).value)\n",
|
||
" person.setdefault(code, {})\n",
|
||
" dict1 = {}\n",
|
||
" name = sheet.cell(n, 5).value\n",
|
||
" dict1['name'] = name\n",
|
||
" dict1['bh'] = n - 1\n",
|
||
" dict1['sex'] = sheet.cell(n, 6).value\n",
|
||
" if sheet.cell(n, 9).value is not None:\n",
|
||
" dict1['phone'] = str(sheet.cell(n, 9).value)\n",
|
||
" if sheet.cell(n,8).value is not None:\n",
|
||
" dict1['id_num'] = sheet.cell(n,8).value\n",
|
||
" if sheet.cell(n,3).value is not None:\n",
|
||
" dict1['unit'] = sheet.cell(n,3).value\n",
|
||
" person[code] = dict1\n",
|
||
"print(len(person))\n",
|
||
"filename = 'data/杨庙恢复版信息.json'\n",
|
||
"with open(filename, 'w') as fl:\n",
|
||
" json.dump(person, fl, ensure_ascii=False,default=str)\n",
|
||
"print('ok')"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "de1ce95b-4590-4eee-bd51-d37beabd6f87",
|
||
"metadata": {},
|
||
"source": [
|
||
"## 风险筛选统计卡可用人员信息"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "f21fff31-0da6-4c1a-bf7c-8c4a1d4a3ecf",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"re_ta = {}\n",
|
||
"dict1 = {}\n",
|
||
"list1 = []\n",
|
||
"#print(\"\\n运动项目信息:\")\n",
|
||
"filename = 'data/140.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",
|
||
"list2 = []\n",
|
||
"for result in list1:\n",
|
||
" user = int(result[2])\n",
|
||
" if user not in list2:\n",
|
||
" list2.append(user)\n",
|
||
"list2.sort()\n",
|
||
"set1 = set()\n",
|
||
"filename = 'data/杨庙恢复版信息.json'\n",
|
||
"with open(filename,'r') as fl:\n",
|
||
" dict_base = json.load(fl)\n",
|
||
"for k, v in dict_base.items():\n",
|
||
" set1.add(int(k))\n",
|
||
"filename = 'data/杨庙运动风险筛查统计表信息.json'\n",
|
||
"\n",
|
||
"with open(filename,'r') as fl:\n",
|
||
" dict1 = json.load(fl)\n",
|
||
"list_fx = []\n",
|
||
"\n",
|
||
"for k,v in dict1.items():\n",
|
||
" \n",
|
||
" if int(k) in list2 and k not in dict_base.keys() and v['name'] != '不详': \n",
|
||
" set1.add(int(k))\n",
|
||
"#print(len(list_fx))\n",
|
||
"#print(len(set1)) \n",
|
||
"for item in list2:\n",
|
||
" if item not in set1:\n",
|
||
" print(item)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "b08187a6-41d9-40ec-bc62-d99969148fe7",
|
||
"metadata": {},
|
||
"source": [
|
||
"## 补充恢复版信息"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "50a5e0f9-3850-48ac-9f3a-f5a7be51a7fd",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"filename = 'data/杨庙恢复版信息.json'\n",
|
||
"with open(filename,'r') as fl:\n",
|
||
" dict_base = json.load(fl)\n",
|
||
"for k, v in dict_base.items():\n",
|
||
" set1.add(int(k))\n",
|
||
"filename = 'data/杨庙运动风险筛查统计表信息.json'\n",
|
||
"\n",
|
||
"with open(filename,'r') as fl:\n",
|
||
" dict1 = json.load(fl)\n",
|
||
"for k,v in dict_base.items():\n",
|
||
" if k in dict1.keys() and 'phone' not in v.keys() and 'phone' in dict1[k].keys():\n",
|
||
" #print(k,v['name'])\n",
|
||
" dict_base[k]['phone'] = dict1[k]['phone']\n",
|
||
"\n",
|
||
"for k, v in dict1.items():\n",
|
||
" if int(k) in list2 and k not in dict_base.keys():\n",
|
||
" dict_base[k] = v\n",
|
||
" \n",
|
||
"print(len(dict_base))\n",
|
||
"#print(dict_base)\n",
|
||
"filename = 'data/羊庙人员名单.json'\n",
|
||
"with open(filename,'r') as fl:\n",
|
||
" dict2 = json.load(fl)\n",
|
||
"i = 1\n",
|
||
"for k, v in dict_base.items():\n",
|
||
" if 'bh' not in v.keys():\n",
|
||
" name = v['name']\n",
|
||
" n = 0\n",
|
||
" for k1,v1 in dict2.items():\n",
|
||
" if name == v1['name']:\n",
|
||
" bh = k1\n",
|
||
" n = n+1\n",
|
||
" if n ==1:\n",
|
||
" dict_base[k]['bh'] = bh\n",
|
||
" else:\n",
|
||
" print(i,k,v['name'])\n",
|
||
" i+=1\n",
|
||
"filename = 'data/杨庙补充汇总信息.json'\n",
|
||
"with open(filename, 'w') as fl:\n",
|
||
" json.dump(dict_base, fl, ensure_ascii=False,default=str)\n",
|
||
"print('ok')"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "41c81dfc-ee3a-4934-8f02-077e3f07e5fc",
|
||
"metadata": {},
|
||
"source": [
|
||
"## 导出汇总信息"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "1106fa5d-f0dd-4af4-bc39-7b106786b438",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"filename = 'data/杨庙补充汇总信息.json'\n",
|
||
"with open(filename,'r') as fl:\n",
|
||
" dict1 = json.load(fl)\n",
|
||
"list_item = ['name','bh','sex','phone','unit','id_num']\n",
|
||
"list_data = []\n",
|
||
"\n",
|
||
"for k, v in dict1.items():\n",
|
||
" list_mx = []\n",
|
||
" list_mx.append(k)\n",
|
||
" for item in list_item:\n",
|
||
" if item in v.keys():\n",
|
||
" list_mx.append(v[item])\n",
|
||
" else:\n",
|
||
" list_mx.append('')\n",
|
||
" list_data.append(list_mx)\n",
|
||
"#print(list_data) \n",
|
||
"filename = 'data/羊庙汇总情况表.xlsx'\n",
|
||
"wb = openpyxl.Workbook()\n",
|
||
"sheet = wb.active\n",
|
||
"#sheet.append(title)\n",
|
||
"for row in list_data:\n",
|
||
" sheet.append(row)\n",
|
||
" \n",
|
||
"wb.save(filename) \n",
|
||
"print('ok!')"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "d31fa9b7-26d8-4101-94d1-f41723428aa9",
|
||
"metadata": {},
|
||
"source": [
|
||
"## 成年问卷导入"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "dc20aabb-3942-49b9-8841-8e8a0823033a",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import openpyxl\n",
|
||
"import json\n",
|
||
"\n",
|
||
"filename = 'data/杨庙体测明确人员信息(20230328).json'\n",
|
||
"with open(filename,'r') as fl:\n",
|
||
" dict2 = json.load(fl)\n",
|
||
"wb = openpyxl.load_workbook('data/羊庙问卷统计表(成年组).xlsx')\n",
|
||
"sheet = wb.active\n",
|
||
"# sheets = wb.sheetnames\n",
|
||
"\n",
|
||
"dict1 = {}\n",
|
||
"no_xinli = [108,389,268,270]\n",
|
||
"sheet = wb.active\n",
|
||
"data1 =list(sheet.values)\n",
|
||
"list_bh = data1[0][1:]\n",
|
||
"del data1[0]\n",
|
||
"print(len(list_bh))\n",
|
||
"for i in range(1,len(list_bh)+1):\n",
|
||
" list2 = []\n",
|
||
" \n",
|
||
" for item in data1:\n",
|
||
" list2.append(item[i])\n",
|
||
" dict1[list_bh[i-1]] = list2\n",
|
||
"for k, v in dict1.items():\n",
|
||
" #if 0 in v:\n",
|
||
" # print(k)\n",
|
||
" if str(k) not in dict2.keys():\n",
|
||
" print(k,'不在清理名单中')\n",
|
||
"\n",
|
||
"#print(dict1)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "9a38f22b-6a8c-422f-a706-07382ccaceda",
|
||
"metadata": {},
|
||
"source": [
|
||
"## 成年问卷导出"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "2c84736a-b6cc-43d6-9407-ead6300748a5",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import openpyxl\n",
|
||
"import json\n",
|
||
"\n",
|
||
"filename = 'data/杨庙体测明确人员信息(20230328).json'\n",
|
||
"with open(filename,'r') as fl:\n",
|
||
" dict3 = json.load(fl)\n",
|
||
"wb = openpyxl.load_workbook('data/羊庙问卷统计表(成年组).xlsx')\n",
|
||
"sheet = wb.active\n",
|
||
"# sheets = wb.sheetnames\n",
|
||
"dict1 = {}\n",
|
||
"list_bh = []\n",
|
||
"no_xinli = [108,389,268,270]\n",
|
||
"zy = [2,7,9,11,12,21,24]\n",
|
||
"sheet = wb.active\n",
|
||
"data1 =list(sheet.values)\n",
|
||
"list_bh = data1[0][1:]\n",
|
||
"del data1[0]\n",
|
||
"\n",
|
||
"\n",
|
||
"for i in range(1,len(list_bh)+1):\n",
|
||
" list2 = []\n",
|
||
" \n",
|
||
" for item in data1:\n",
|
||
" list2.append(item[i])\n",
|
||
" dict1[list_bh[i-1]] = list2\n",
|
||
"#print(dict1)\n",
|
||
"s = ''\n",
|
||
"for k,v in dict1.items():\n",
|
||
" if str(k) in dict3.keys(): \n",
|
||
" if dict3[str(k)]['sex'] ==1:\n",
|
||
" sex = \"m\"\n",
|
||
" else:\n",
|
||
" sex = \"f\"\n",
|
||
" dict2 = {}\n",
|
||
" list_mx = []\n",
|
||
" list_mx.append(f'\"Gender\":\"{sex}\"')\n",
|
||
" list_mx.append(f'\"Age\":\"M\"')\n",
|
||
" dict2['surveyId'] = \"merge1\"\n",
|
||
" dict2['name'] = dict3[str(k)]['name'] \n",
|
||
" name = dict3[str(k)]['name'] \n",
|
||
" dict2['code'] = str(k)\n",
|
||
" ss = ''\n",
|
||
" \n",
|
||
" if k not in no_xinli:\n",
|
||
" for i in range(0,47):\n",
|
||
" list_mx.append(f'\"q{i+1}M\":{v[i]}') \n",
|
||
" \n",
|
||
" for i in range(1,61):\n",
|
||
" if i not in zy:\n",
|
||
" list_mx.append(f'\"q{i}\":{v[46+i]}')\n",
|
||
" for i in range(1,27):\n",
|
||
" list_mx.append(f'\"qv{i}\":{v[106+i]}')\n",
|
||
" ss = ','.join(list_mx)\n",
|
||
" ss ='{'+ss+'}'\n",
|
||
" dict2['data'] = ss\n",
|
||
" sj = '2023-03-28 20:02:00'\n",
|
||
" s= s+f'(\"merge1\",\"{name}\",\"{str(k)}\",\\'{ss}\\',\"{sj}\"),'\n",
|
||
" #print(dict2)\n",
|
||
"print(s)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "75dda87e-804e-42ba-b1a4-08c8a8b65050",
|
||
"metadata": {},
|
||
"source": [
|
||
"## 老年问卷导入"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "09a354e6-a07a-40b8-9b8c-3499fb0b7c28",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import openpyxl\n",
|
||
"import json\n",
|
||
"\n",
|
||
"filename = 'data/杨庙体测明确人员信息(20230328).json'\n",
|
||
"with open(filename,'r') as fl:\n",
|
||
" dict2 = json.load(fl)\n",
|
||
"wb = openpyxl.load_workbook('data/羊庙问卷统计表(老年组).xlsx')\n",
|
||
"sheet = wb.active\n",
|
||
"# sheets = wb.sheetnames\n",
|
||
"dict1 = {}\n",
|
||
"dict3 = {}\n",
|
||
"no_xinli = [286]\n",
|
||
"sheet = wb.active\n",
|
||
"data1 =list(sheet.values)\n",
|
||
"list_bh = data1[0][1:]\n",
|
||
"print(list_bh)\n",
|
||
"del data1[0]\n",
|
||
"print(len(list_bh))\n",
|
||
"for i in range(1,len(list_bh)+1):\n",
|
||
" list2 = []\n",
|
||
" \n",
|
||
" for item in data1:\n",
|
||
" list2.append(item[i])\n",
|
||
" dict1[list_bh[i-1]] = list2\n",
|
||
"for k, v in dict1.items():\n",
|
||
" #if 0 in v or ' ' in v:\n",
|
||
" # print(k)\n",
|
||
" if str(k) not in dict2.keys():\n",
|
||
" print(k,'不在清理名单中')\n",
|
||
"#print(dict1)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "e2e311b1-7436-49e3-bf52-93c38f088be1",
|
||
"metadata": {},
|
||
"source": [
|
||
"## 老年问卷导出"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "f41e130b-06e5-45ee-bf3d-cc25dfcc653d",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import openpyxl\n",
|
||
"import json\n",
|
||
"\n",
|
||
"filename = 'data/杨庙体测明确人员信息(20230328).json'\n",
|
||
"with open(filename,'r') as fl:\n",
|
||
" dict3 = json.load(fl)\n",
|
||
"wb = openpyxl.load_workbook('data/羊庙问卷统计表(老年组).xlsx')\n",
|
||
"sheet = wb.active\n",
|
||
"# sheets = wb.sheetnames\n",
|
||
"dict1 = {}\n",
|
||
"\n",
|
||
"no_xinli = [286]\n",
|
||
"sheet = wb.active\n",
|
||
"data1 =list(sheet.values)\n",
|
||
"list_bh = data1[0][1:]\n",
|
||
"#print(list_bh)\n",
|
||
"del data1[0]\n",
|
||
"\n",
|
||
"for i in range(1,len(list_bh)+1):\n",
|
||
" list2 = []\n",
|
||
" \n",
|
||
" for item in data1:\n",
|
||
" list2.append(item[i])\n",
|
||
" dict1[list_bh[i-1]] = list2\n",
|
||
"#print(dict1)\n",
|
||
"s = ''\n",
|
||
"for k,v in dict1.items():\n",
|
||
" if str(k) in dict3.keys(): \n",
|
||
" if dict3[str(k)]['sex'] ==1:\n",
|
||
" sex = \"m\"\n",
|
||
" else:\n",
|
||
" sex = \"f\"\n",
|
||
" dict2 = {}\n",
|
||
" list_mx = []\n",
|
||
" list_mx.append(f'\"Gender\":\"{sex}\"')\n",
|
||
" list_mx.append(f'\"Age\":\"O\"')\n",
|
||
" dict2['surveyId'] = \"merge1\"\n",
|
||
" dict2['name'] = dict3[str(k)]['name'] \n",
|
||
" dict2['code'] = str(k) \n",
|
||
" name = dict3[str(k)]['name'] \n",
|
||
" if k not in no_xinli:\n",
|
||
" for i in range(0,30):\n",
|
||
" list_mx.append(f'\"q{i+1}O\":{v[i]}') \n",
|
||
" \n",
|
||
" for i in range(1,61):\n",
|
||
" if i not in zy:\n",
|
||
" list_mx.append(f'\"q{i}\":{v[29+i]}')\n",
|
||
" for i in range(1,27):\n",
|
||
" list_mx.append(f'\"qv{i}\":{v[89+i]}')\n",
|
||
" ss = ','.join(list_mx)\n",
|
||
" ss ='{'+ss+'}'\n",
|
||
" dict2['data'] = ss\n",
|
||
" sj = '2023-03-28 20:02:00'\n",
|
||
" s= s+f'(\"merge1\",\"{name}\",\"{str(k)}\",\\'{ss}\\',\"{sj}\"),'\n",
|
||
" #print(dict2)\n",
|
||
"print(s)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "3262d713-92a4-4790-81a3-976ff308ee3d",
|
||
"metadata": {},
|
||
"source": [
|
||
"## 统计网络问卷信息"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "08980670-fda9-4660-a619-2f5f5ed8d334",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"filename = 'data/merge1.json'\n",
|
||
"\n",
|
||
"with open(filename,'r') as fl:\n",
|
||
" dict1 = json.load(fl)\n",
|
||
"#print(dict1)\n",
|
||
"filename = 'data/杨庙体测明确人员信息(20230328).json'\n",
|
||
"with open(filename,'r') as fl:\n",
|
||
" dict2 = json.load(fl)\n",
|
||
"dict3 = {}\n",
|
||
"for k, v in dict1.items():\n",
|
||
" print(len(v))\n",
|
||
" for item in v:\n",
|
||
" phone = item['phone']\n",
|
||
" dict3.setdefault(phone,{})\n",
|
||
" #dict3[phone]['data'] = v['data']\n",
|
||
" for k1,v1 in dict2.items():\n",
|
||
" if 'phone' in v1.keys() and phone == v1['phone']:\n",
|
||
" dict3[phone]['bh'] = k1\n",
|
||
"print(dict3)\n",
|
||
"for k, v in dict2.items():\n",
|
||
" for k1, v1 in dict2.items():\n",
|
||
" \n",
|
||
" if 'bh' not in v.keys():\n",
|
||
" print(k)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "e06b0149-c1ff-4fd0-b692-1be391433f40",
|
||
"metadata": {},
|
||
"source": [
|
||
"# 按照测试编号管理"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "54c8e75c-6d3a-4b0d-91a1-c5e9e79a119f",
|
||
"metadata": {},
|
||
"source": [
|
||
"## 导入测试人员信息表(符合条件)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "b51b73fa-97fa-473c-ab8a-d1fd958eb52a",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import openpyxl\n",
|
||
"import json\n",
|
||
"import time\n",
|
||
"\n",
|
||
"wb = openpyxl.load_workbook('data/杨庙体测明确人员信息表(20230328).xlsx')\n",
|
||
"sheet = wb.active\n",
|
||
"person = {}\n",
|
||
"for n in range(2, sheet.max_row+1):\n",
|
||
" code = int(sheet.cell(n, 1).value)\n",
|
||
" person.setdefault(code, {})\n",
|
||
" dict1 = {}\n",
|
||
" name = sheet.cell(n, 2).value \n",
|
||
" dict1['name'] = name\n",
|
||
" dict1['sex'] = sheet.cell(n, 3).value\n",
|
||
" dict1['birth'] = str(sheet.cell(n, 4).value).split(' ')[0]\n",
|
||
" if sheet.cell(n, 5).value is not None:\n",
|
||
" dict1['phone'] = str(sheet.cell(n, 5).value)\n",
|
||
" if sheet.cell(n,6).value is not None:\n",
|
||
" dict1['unit'] = sheet.cell(n,6).value \n",
|
||
" person[code] = dict1\n",
|
||
"filename = 'data/杨庙体测明确人员信息(20230328).json'\n",
|
||
"with open(filename, 'w') as fl:\n",
|
||
" json.dump(person, fl, ensure_ascii=False,default=str)\n",
|
||
"print('ok')"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "cc0c1a86-e15f-43e9-99e9-140aed8475bf",
|
||
"metadata": {},
|
||
"source": [
|
||
"## 体测报告更名按部门分组"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "ac3bb674-77e2-4edb-aae7-7b589c8d9b5a",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import os,sys,shutil\n",
|
||
"import json\n",
|
||
"import math\n",
|
||
"\n",
|
||
"filename = 'data/杨庙体测明确人员信息(20230328).json'\n",
|
||
"with open(filename,'r') as fl:\n",
|
||
" dict1 = json.load(fl)\n",
|
||
"old = []\n",
|
||
"depart = []\n",
|
||
"for k, v in dict1.items():\n",
|
||
" m_depart = v['unit']\n",
|
||
" if m_depart not in depart:\n",
|
||
" depart.append(m_depart)\n",
|
||
" \n",
|
||
"fi_path = '/data/pdf/ydyb/140/2023-03-29'\n",
|
||
"\n",
|
||
"\n",
|
||
"# 创建部门办公室 \n",
|
||
"m_path = 'file/140'\n",
|
||
"for pn in depart:\n",
|
||
" if not os.path.exists(m_path + '/' + pn):\n",
|
||
" os.mkdir(m_path + '/' + pn)\n",
|
||
"fl=os.listdir(fi_path)\n",
|
||
"for fn in fl:\n",
|
||
" if os.path.isfile(fi_path + '/' + fn):\n",
|
||
" ofn = int(fn.split('.')[0])\n",
|
||
" old.append(ofn) \n",
|
||
"old.sort()\n",
|
||
"for n in old: \n",
|
||
" o_name = f'{fi_path}/{n}.pdf'\n",
|
||
" unit = dict1[str(n)]['unit']\n",
|
||
" name = dict1[str(n)]['name']\n",
|
||
" n_name = f'{m_path}/{unit}/{str(n).rjust(5,\"0\")}-{name}.pdf'\n",
|
||
" #print(o_name,n_name)\n",
|
||
" if not os.path.exists(n_name):\n",
|
||
" shutil.copyfile(o_name,n_name)\n",
|
||
" print(n_name)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "a1e61c81-d63b-4089-8d79-f05b4a7a35e2",
|
||
"metadata": {},
|
||
"source": [
|
||
"## 生成体检报告情况表"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "b1ff81f5-a8fa-4cea-9158-f80bccbf1494",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import os,sys,shutil\n",
|
||
"import openpyxl\n",
|
||
"import json\n",
|
||
"\n",
|
||
"filename = 'data/杨庙体测明确人员信息(20230328).json'\n",
|
||
"with open(filename,'r') as fl:\n",
|
||
" dict1 = json.load(fl)\n",
|
||
"old = []\n",
|
||
"depart = []\n",
|
||
"for k, v in dict1.items():\n",
|
||
" m_depart = v['unit']\n",
|
||
" if m_depart not in depart:\n",
|
||
" depart.append(m_depart)\n",
|
||
" \n",
|
||
"fi_path = '/data/pdf/ydyb/140/2023-03-29'\n",
|
||
"fl=os.listdir(fi_path)\n",
|
||
"for fn in fl:\n",
|
||
" if os.path.isfile(fi_path + '/' + fn):\n",
|
||
" ofn = int(fn.split('.')[0])\n",
|
||
" old.append(ofn) \n",
|
||
"old.sort()\n",
|
||
"list1 = []\n",
|
||
"for n in old:\n",
|
||
" list2 =[]\n",
|
||
" unit = dict1[str(n)]['unit']\n",
|
||
" name = dict1[str(n)]['name']\n",
|
||
" list2 = [str(n).rjust(5,\"0\"),name,unit]\n",
|
||
" list1.append(list2)\n",
|
||
"\n",
|
||
"filename = 'data/杨庙体测报告明细表.xlsx'\n",
|
||
"wb = openpyxl.Workbook()\n",
|
||
"sheet = wb.active\n",
|
||
"title = ['体测编号','姓名','单位']\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": "791d2bce-3183-4405-b41a-4da8df6f5567",
|
||
"metadata": {},
|
||
"source": [
|
||
"## 生成脊柱问卷信息表"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "78109eb9-9c40-4289-b358-a68e64bb3361",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import json\n",
|
||
"import pymysql\n",
|
||
"import openpyxl\n",
|
||
"\n",
|
||
"filename = 'data/杨庙体测明确人员信息(20230328).json'\n",
|
||
"with open(filename,'r') as fl:\n",
|
||
" dict1 = json.load(fl)\n",
|
||
"#print(dict1)\n",
|
||
"xm = ['qv1','qv2','qv3','qv4','qv5','qv6','qv7','qv8','qv9','qv10','qv11','qv12','qv13','qv14','qv15','qv16','qv17','qv18','qv19','qv20','qv21','qv22','qv23','qv24','qv25','qv26']\n",
|
||
"title = ['编号','姓名','性别']\n",
|
||
"for item in xm:\n",
|
||
" title.append(item)\n",
|
||
"db = pymysql.connect(host = \"localhost\",user = \"songyi\",password = \"yylzs\",database = \"ydyb\" )\n",
|
||
"cursor = db.cursor()\n",
|
||
"sql = 'SELECT a.phone ,a.name,a.code,a.data FROM Survey as a WHERE a.surveyId =\"merge1\"'\n",
|
||
"cursor.execute(sql)\n",
|
||
"results = cursor.fetchall()\n",
|
||
"list2 =[]\n",
|
||
"for result in results: \n",
|
||
" c=json.loads(result[3])\n",
|
||
" if result[2] is None:\n",
|
||
" phone = result[0]\n",
|
||
" for k,v in dict1.items():\n",
|
||
" if 'phone' in v.keys() and phone ==v['phone']:\n",
|
||
" list1 = []\n",
|
||
" code = k\n",
|
||
" name = v['name']\n",
|
||
" list1.append(code)\n",
|
||
" list1.append(name)\n",
|
||
" list1.append(v['sex'])\n",
|
||
" for item in xm:\n",
|
||
" if item in c.keys():\n",
|
||
" list1.append(c[item])\n",
|
||
" else:\n",
|
||
" list1.append('')\n",
|
||
" list2.append(list1)\n",
|
||
" else:\n",
|
||
" list1 = []\n",
|
||
" code = result[2]\n",
|
||
" name = result[1]\n",
|
||
" list1.append(code)\n",
|
||
" list1.append(name)\n",
|
||
" list1.append(v['sex'])\n",
|
||
" for item in xm:\n",
|
||
" if item in c.keys():\n",
|
||
" list1.append(c[item])\n",
|
||
" else:\n",
|
||
" list1.append('') \n",
|
||
" list2.append(list1)\n",
|
||
"filename = 'data/杨庙脊柱问卷明细表.xlsx'\n",
|
||
"wb = openpyxl.Workbook()\n",
|
||
"sheet = wb.active\n",
|
||
"sheet.append(title)\n",
|
||
"for row in list2:\n",
|
||
" sheet.append(row)\n",
|
||
" \n",
|
||
"wb.save(filename) \n",
|
||
"print('ok!') "
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "8a641c17-f628-4f5f-94bb-de95e0c40286",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import json\n",
|
||
"import pymysql\n",
|
||
"\n",
|
||
"filename = 'data/杨庙体测明确人员信息(20230328).json'\n",
|
||
"with open(filename,'r') as fl:\n",
|
||
" dict1 = json.load(fl)\n",
|
||
"#print(dict1)\n",
|
||
"xm = ['qv1','qv2','qv3','qv4','qv5','qv6','qv7','qv8','qv9','qv10','qv11','qv12','qv13','qv14','qv15','qv16','qv17','qv18','qv19','qv20','qv21','qv22','qv23','qv24','qv25','qv26']\n",
|
||
"db = pymysql.connect(host = \"localhost\",user = \"songyi\",password = \"yylzs\",database = \"ydyb\" )\n",
|
||
"cursor = db.cursor()\n",
|
||
"sql = 'SELECT a.phone ,a.name,a.code,a.data FROM Survey as a WHERE a.surveyId =\"merge1\"'\n",
|
||
"cursor.execute(sql)\n",
|
||
"results = cursor.fetchall()\n",
|
||
"for result in results:\n",
|
||
" c=json.loads(result[3])\n",
|
||
" print(c, type(c))"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "beb22a32-ae9b-4602-bf1a-30b8e243ea1f",
|
||
"metadata": {},
|
||
"source": [
|
||
"## 查询中年组心理测评人员"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "ce028da4-2cb1-4ee2-b7f3-6f3cfcda1851",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import json\n",
|
||
"import pymysql\n",
|
||
"\n",
|
||
"filename = 'data/杨庙体测明确人员信息(20230328).json'\n",
|
||
"with open(filename,'r') as fl:\n",
|
||
" dict1 = json.load(fl)\n",
|
||
"#print(dict1)\n",
|
||
"xm = ['qv1','qv2','qv3','qv4','qv5','qv6','qv7','qv8','qv9','qv10','qv11','qv12','qv13','qv14','qv15','qv16','qv17','qv18','qv19','qv20','qv21','qv22','qv23','qv24','qv25','qv26']\n",
|
||
"db = pymysql.connect(host = \"localhost\",user = \"songyi\",password = \"yylzs\",database = \"ydyb\" )\n",
|
||
"cursor = db.cursor()\n",
|
||
"sql = 'SELECT a.phone ,a.name,a.code,a.data FROM Survey as a WHERE a.surveyId =\"merge1\"'\n",
|
||
"cursor.execute(sql)\n",
|
||
"results = cursor.fetchall()\n",
|
||
"list2 =[]\n",
|
||
"for result in results:\n",
|
||
" c=json.loads(result[3])\n",
|
||
" if 'q1M' in c.keys():\n",
|
||
" if result[2] is None:\n",
|
||
" phone = result[0]\n",
|
||
" for k,v in dict1.items():\n",
|
||
" if 'phone' in v.keys() and phone ==v['phone']:\n",
|
||
" list1 = []\n",
|
||
" code = k\n",
|
||
" name = v['name']\n",
|
||
" list1.append(code)\n",
|
||
" list1.append(name)\n",
|
||
" list1.append(v['sex'])\n",
|
||
" list1.append(v['birth'])\n",
|
||
" list1.append(v['unit'])\n",
|
||
" list2.append(list1)\n",
|
||
" else:\n",
|
||
" list1 = []\n",
|
||
" code = result[2]\n",
|
||
" name = result[1]\n",
|
||
" list1.append(code)\n",
|
||
" list1.append(name)\n",
|
||
" list1.append(dict1[code]['sex'])\n",
|
||
" list1.append(dict1[code]['birth'])\n",
|
||
" list1.append(dict1[code]['unit'])\n",
|
||
" \n",
|
||
" list2.append(list1)\n",
|
||
"filename = 'data/杨庙心理问卷成年组人员明细表.xlsx'\n",
|
||
"wb = openpyxl.Workbook()\n",
|
||
"sheet = wb.active\n",
|
||
"#sheet.append(title)\n",
|
||
"for row in list2:\n",
|
||
" sheet.append(row)\n",
|
||
" \n",
|
||
"wb.save(filename) \n",
|
||
"print('ok!') "
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "be6e17d8-7687-422c-994d-35afd014aee6",
|
||
"metadata": {},
|
||
"source": [
|
||
"## 成年人心理问卷体测报告更名按部门分组"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "e24a046e-77cd-4df2-af89-733d718ce543",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import os,sys,shutil\n",
|
||
"import json\n",
|
||
"import math\n",
|
||
"\n",
|
||
"filename = 'data/杨庙体测明确人员信息(20230328).json'\n",
|
||
"with open(filename,'r') as fl:\n",
|
||
" dict1 = json.load(fl)\n",
|
||
"old = []\n",
|
||
"depart = []\n",
|
||
"wb = openpyxl.load_workbook('data/杨庙心理问卷成年组人员明细表.xlsx')\n",
|
||
"sheet = wb.active\n",
|
||
"# sheets = wb.sheetnames\n",
|
||
"\n",
|
||
"list_bh = []\n",
|
||
"\n",
|
||
"for n in range(1,sheet.max_row+1):\n",
|
||
" list_bh.append(int(sheet.cell(n, 1).value)) \n",
|
||
" m_depart = sheet.cell(n, 5).value\n",
|
||
" if m_depart not in depart:\n",
|
||
" depart.append(m_depart)\n",
|
||
" \n",
|
||
"fi_path = '/data/pdf/ydyb/140/2023-04-01'\n",
|
||
"\n",
|
||
"\n",
|
||
"# 创建部门办公室 \n",
|
||
"m_path = 'file/140wenjuan'\n",
|
||
"for pn in depart:\n",
|
||
" if not os.path.exists(m_path + '/' + pn):\n",
|
||
" os.mkdir(m_path + '/' + pn)\n",
|
||
"fl=os.listdir(fi_path)\n",
|
||
"for fn in fl:\n",
|
||
" if os.path.isfile(fi_path + '/' + fn):\n",
|
||
" ofn = int(fn.split('.')[0])\n",
|
||
" if ofn in list_bh:\n",
|
||
" old.append(ofn) \n",
|
||
"old.sort()\n",
|
||
"for n in old: \n",
|
||
" o_name = f'{fi_path}/{n}.pdf'\n",
|
||
" unit = dict1[str(n)]['unit']\n",
|
||
" name = dict1[str(n)]['name']\n",
|
||
" n_name = f'{m_path}/{unit}/{str(n).rjust(5,\"0\")}-{name}.pdf'\n",
|
||
" #print(o_name,n_name)\n",
|
||
" if not os.path.exists(n_name):\n",
|
||
" shutil.copyfile(o_name,n_name)\n",
|
||
" print(n_name)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "387b5c35-886a-41dc-b787-f67154efa758",
|
||
"metadata": {},
|
||
"source": [
|
||
"# 杨庙社区处方分组"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "b8dafd4a-2bd4-4626-b8a8-45ae9cbe7177",
|
||
"metadata": {},
|
||
"source": [
|
||
"## 人员分组"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "bc731911-3390-4c5e-bccf-fc7c367e1172",
|
||
"metadata": {},
|
||
"source": [
|
||
"### 高血压人员"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "5d24953d-4ded-4e1c-911c-a0baab222399",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import os,sys,shutil\n",
|
||
"import json\n",
|
||
"import math\n",
|
||
"\n",
|
||
"filename = 'data/杨庙体测明确人员信息(20230328).json'\n",
|
||
"with open(filename,'r') as fl:\n",
|
||
" dict1 = json.load(fl)\n",
|
||
"\n",
|
||
"wb = openpyxl.load_workbook('data/杨庙运动风险筛查统计表.xlsx')\n",
|
||
"sheet = wb.active\n",
|
||
"# sheets = wb.sheetnames\n",
|
||
"\n",
|
||
"list_gxy = []\n",
|
||
"\n",
|
||
"for n in range(2,sheet.max_row+1):\n",
|
||
" code = sheet.cell(n, 1).value\n",
|
||
" if sheet.cell(n, 3).value is not None:\n",
|
||
" code = sheet.cell(n, 1).value\n",
|
||
" gxy = sheet.cell(n, 3).value\n",
|
||
" if str(code) in dict1.keys() and int(gxy) ==1:\n",
|
||
" list_gxy.append(str(code))\n",
|
||
"print(list_gxy)\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "a1f4ee17-4a47-4b46-a139-92e25c363a82",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2023-04-01T09:22:21.145580Z",
|
||
"iopub.status.busy": "2023-04-01T09:22:21.145166Z",
|
||
"iopub.status.idle": "2023-04-01T09:22:21.150015Z",
|
||
"shell.execute_reply": "2023-04-01T09:22:21.148725Z",
|
||
"shell.execute_reply.started": "2023-04-01T09:22:21.145552Z"
|
||
},
|
||
"tags": []
|
||
},
|
||
"source": [
|
||
"### 失眠人员"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "efa10ba4-0a27-41e6-beb7-27de8f3109a1",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import json\n",
|
||
"import pymysql\n",
|
||
"\n",
|
||
"filename = 'data/杨庙体测明确人员信息(20230328).json'\n",
|
||
"with open(filename,'r') as fl:\n",
|
||
" dict1 = json.load(fl)\n",
|
||
"#print(dict1)\n",
|
||
"\n",
|
||
"db = pymysql.connect(host = \"localhost\",user = \"songyi\",password = \"yylzs\",database = \"ydyb\" )\n",
|
||
"cursor = db.cursor()\n",
|
||
"sql = 'SELECT a.phone ,a.name,a.code,a.data FROM Survey as a WHERE a.surveyId =\"merge1\"'\n",
|
||
"cursor.execute(sql)\n",
|
||
"results = cursor.fetchall()\n",
|
||
"list_sm =[]\n",
|
||
"for result in results:\n",
|
||
" c=json.loads(result[3])\n",
|
||
" if 'qv7' in c.keys() and c['qv7'] ==1:\n",
|
||
" if result[2] is None:\n",
|
||
" phone = result[0]\n",
|
||
" for k,v in dict1.items():\n",
|
||
" if 'phone' in v.keys() and phone ==v['phone']:\n",
|
||
" list_sm.append(k) \n",
|
||
" else:\n",
|
||
" list_sm.append(result[2])\n",
|
||
"print(list_sm)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "0830d7d4-958d-4166-a439-9a6bfca2cf18",
|
||
"metadata": {},
|
||
"source": [
|
||
"### 脊柱调理人员"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "e5bd9e8c-00f5-48b7-8cc7-810316e0423b",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import json\n",
|
||
"import pymysql\n",
|
||
"\n",
|
||
"filename = 'data/杨庙体测明确人员信息(20230328).json'\n",
|
||
"with open(filename,'r') as fl:\n",
|
||
" dict1 = json.load(fl)\n",
|
||
"#print(dict1)\n",
|
||
"\n",
|
||
"db = pymysql.connect(host = \"localhost\",user = \"songyi\",password = \"yylzs\",database = \"ydyb\" )\n",
|
||
"cursor = db.cursor()\n",
|
||
"sql = 'SELECT a.phone ,a.name,a.code,a.data FROM Survey as a WHERE a.surveyId =\"merge1\"'\n",
|
||
"cursor.execute(sql)\n",
|
||
"results = cursor.fetchall()\n",
|
||
"list_jz =[]\n",
|
||
"for result in results:\n",
|
||
" c=json.loads(result[3])\n",
|
||
" if ('qv1' in c.keys() and c['qv1'] ==1) or ('qv18' in c.keys() and c['qv18'] ==1):\n",
|
||
" if result[2] is None:\n",
|
||
" phone = result[0]\n",
|
||
" for k,v in dict1.items():\n",
|
||
" if 'phone' in v.keys() and phone ==v['phone']:\n",
|
||
" list_jz.append(k) \n",
|
||
" else:\n",
|
||
" list_jz.append(result[2])\n",
|
||
"print(list_jz)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "4c02f3b9-6677-4114-9fd9-f9d8bccaefe0",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"dict2 = {}\n",
|
||
"dict2.setdefault('高血压',[])\n",
|
||
"dict2['高血压'] = list_gxy\n",
|
||
"dict2.setdefault('失眠',[])\n",
|
||
"for item in list_sm:\n",
|
||
" if item not in list_gxy:\n",
|
||
" dict2['失眠'].append(item)\n",
|
||
"\n",
|
||
"dict2.setdefault('脊柱调理',[])\n",
|
||
"for item in list_jz:\n",
|
||
" if item not in list_gxy and item not in list_sm:\n",
|
||
" dict2['脊柱调理'].append(item)\n",
|
||
"\n",
|
||
"list_other = []\n",
|
||
"for item in dict1.keys():\n",
|
||
" if item not in list_gxy and item not in list_sm and item not in list_jz:\n",
|
||
" list_other.append(item)\n",
|
||
"dict2['整体调理'] = list_other\n",
|
||
"print(dict2)\n",
|
||
"list1 = []\n",
|
||
"for k, v in dict2.items():\n",
|
||
" for item in v:\n",
|
||
" list2 = [k,item,dict1[item]['name'],dict1[item]['sex'],dict1[item]['birth'],dict1[item]['unit']]\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!') \n",
|
||
" "
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "c7963b8e-91f4-4d26-81f1-93c1b3822efc",
|
||
"metadata": {},
|
||
"source": [
|
||
"# 杨庙社数据维护"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "050db697-d8e1-4799-8f68-c8975a7ea4f2",
|
||
"metadata": {},
|
||
"source": [
|
||
"## 导入分组表"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 79,
|
||
"id": "09b893e1-0012-4610-aac0-9361685bdf37",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2023-04-11T09:41:50.755500Z",
|
||
"iopub.status.busy": "2023-04-11T09:41:50.754647Z",
|
||
"iopub.status.idle": "2023-04-11T09:41:50.936375Z",
|
||
"shell.execute_reply": "2023-04-11T09:41:50.935566Z",
|
||
"shell.execute_reply.started": "2023-04-11T09:41:50.755459Z"
|
||
},
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import psycopg2\n",
|
||
"from psycopg2 import extras as ex\n",
|
||
"import openpyxl\n",
|
||
"\n",
|
||
"wb = openpyxl.load_workbook('data/杨庙社区分组情况表.xlsx')\n",
|
||
"sheet = wb.active\n",
|
||
"data_list = []\n",
|
||
"for n in range(2, sheet.max_row+1):\n",
|
||
" code = int(sheet.cell(n, 3).value)\n",
|
||
" name = sheet.cell(n, 4).value\n",
|
||
" birth = str(sheet.cell(n, 5).value).split(' ')[0]\n",
|
||
" unit = sheet.cell(n, 6).value \n",
|
||
" category = sheet.cell(n, 2).value \n",
|
||
" if sheet.cell(n, 7).value is not None:\n",
|
||
" phone = str(sheet.cell(n, 7).value)\n",
|
||
" else:\n",
|
||
" phone = ''\n",
|
||
" xb = int(sheet.cell(n, 8).value)\n",
|
||
" if xb ==1:\n",
|
||
" sex = '男'\n",
|
||
" else:\n",
|
||
" sex = '女'\n",
|
||
" data_list.append((code,name,sex,birth,category,unit,phone))\n",
|
||
"#print(data_list)\n",
|
||
"\n",
|
||
"conn = psycopg2.connect(database=\"mycrm\", user=\"postgres\", password=\"songyi\", host=\"localhost\", port=\"5432\")\n",
|
||
"cursor = conn.cursor()\n",
|
||
"sql = 'insert into yangmiao_fenzu (code,name,sex,birth,category,unit,phone) values %s'\n",
|
||
"ex.execute_values(cursor, sql, data_list, page_size=10000)\n",
|
||
"conn.commit()\n",
|
||
"cursor.close()\n",
|
||
"conn.close()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "87e18625-a371-4a3c-94d2-69c2a9ac6c48",
|
||
"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.10.6"
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 5
|
||
}
|