脚本
This commit is contained in:
@@ -0,0 +1,557 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 10,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"读取到 对应关系维护表中 2347 条数据!\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "stderr",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"<ipython-input-10-1f1f9d9b869f>:138: DeprecationWarning: invalid escape sequence '\\/'\n",
|
||||
" chinese_str = ALL_DATA_code[i]['formData']['textField_ldo3qxar'].encode('utf-8').decode('unicode_escape')\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"# 基础函数配置\n",
|
||||
"import pandas as pd\n",
|
||||
"import requests\n",
|
||||
"from pathlib import Path\n",
|
||||
"from urllib.parse import quote\n",
|
||||
"import json\n",
|
||||
"import numpy as np\n",
|
||||
"import time\n",
|
||||
"import openpyxl\n",
|
||||
"from datetime import datetime\n",
|
||||
"\n",
|
||||
"ROOT = Path('.').absolute() # 当前工作目录\n",
|
||||
"\n",
|
||||
"def generateToken() -> str:\n",
|
||||
" \"\"\" 生成 token \"\"\"\n",
|
||||
"\n",
|
||||
" token_api = 'https://api.dingtalk.com/v1.0/oauth2/accessToken'\n",
|
||||
"\n",
|
||||
" # 该信息在钉钉开放应用中\n",
|
||||
" data = {\n",
|
||||
" \"appKey\": \"ding5kqocon5s9oph5uq\",\n",
|
||||
" \"appSecret\": 'HL1jgsIIfLAC0eTH0A1m4mwxUDqbgsiPeCCGGE3ocM6qJBTIW7Ivt9drxF_Z4Kb_'\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" res = requests.post(token_api, json=data)\n",
|
||||
" token = res.json()['accessToken']\n",
|
||||
"\n",
|
||||
" return token\n",
|
||||
"def read_instances(token, formUuid, page, n):\n",
|
||||
" \"\"\" 函数功能:读取普通表单的所有数据 \"\"\"\n",
|
||||
"\n",
|
||||
" api = f'https://api.dingtalk.com//v1.0/yida/forms/instances/search'\n",
|
||||
"\n",
|
||||
" headers = {\n",
|
||||
" \"Content-Type\": \"application/json\",\n",
|
||||
" \"x-acs-dingtalk-access-token\": token\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" formData = {\n",
|
||||
" \"appType\" : \"APP_TNVBVZ3K8G56HG03Z45Q\",\n",
|
||||
" \"systemToken\" : \"CH7669818R0WN18TYTYJ42PE6GY22WZN0BYWKD1\",\n",
|
||||
" \"userId\" : \"yida_pub_account\",\n",
|
||||
" \"language\" : \"zh_CN\",\n",
|
||||
" \"formUuid\" : formUuid,\n",
|
||||
" \"currentPage\" : page,\n",
|
||||
" \"pageSize\" : n\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" res = requests.post(api, headers=headers, json=formData)\n",
|
||||
" return res.json()\n",
|
||||
"\n",
|
||||
"def update_instances(TOKEN, processInstanceId,name):\n",
|
||||
" \"\"\" 更新表单实例 \"\"\"\n",
|
||||
"\n",
|
||||
" api = f'https://api.dingtalk.com//v1.0/yida/forms/instances'\n",
|
||||
"\n",
|
||||
" headers = {\n",
|
||||
" \"Content-Type\": \"application/json\",\n",
|
||||
" \"x-acs-dingtalk-access-token\": TOKEN\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" data_new= {\n",
|
||||
" 'radioField_lfth6zsc' : name # 新签服务单状态\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" payload = {\n",
|
||||
" \"appType\" : \"APP_TNVBVZ3K8G56HG03Z45Q\",\n",
|
||||
" \"systemToken\" : \"CH7669818R0WN18TYTYJ42PE6GY22WZN0BYWKD1\",\n",
|
||||
" \"userId\" : \"yida_pub_account\",\n",
|
||||
" \"language\" : \"zh_CN\",\n",
|
||||
" \"formInstanceId\" : processInstanceId,\n",
|
||||
" \"useLatestVersion\" : 'false',\n",
|
||||
" \"updateFormDataJson\" : json.dumps(data_new, cls=NpEncoder) #json.dumps(data_new, cls=NpEncoder)\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" res = requests.put(api, headers=headers,json =payload)\n",
|
||||
"\n",
|
||||
" return res.json()\n",
|
||||
"\n",
|
||||
"class NpEncoder(json.JSONEncoder):\n",
|
||||
" def default(self, obj):\n",
|
||||
" if isinstance(obj, np.integer):\n",
|
||||
" return int(obj)\n",
|
||||
" elif isinstance(obj, np.floating):\n",
|
||||
" return float(obj)\n",
|
||||
" elif isinstance(obj, np.ndarray):\n",
|
||||
" return obj.tolist()\n",
|
||||
" else:\n",
|
||||
" return super(NpEncoder, self).default(obj)\n",
|
||||
" \n",
|
||||
"TOKEN = generateToken() \n",
|
||||
"FORMID = \"FORM-JD8668C1CAC7X39ND7GNN4O8D2UA3L21P3ODL22\" # 对应关系维护\n",
|
||||
"# 读取对应关系维护的所有数据\n",
|
||||
"form_data = read_instances(token=TOKEN, formUuid=FORMID, page=1, n=100)\n",
|
||||
"PAGES = form_data.get('totalCount')//100 + 1\n",
|
||||
"ALL_DATA_code = []\n",
|
||||
"\"\"\" 获取全量数据 \"\"\"\n",
|
||||
"for i in range(1, PAGES+1):\n",
|
||||
" form_data = read_instances(token=TOKEN, formUuid=FORMID, page=i, n=100)\n",
|
||||
" for data in form_data.get('data'):\n",
|
||||
" if data['formData']['selectField_ldo3qxal'] == \"私有\":\n",
|
||||
" ALL_DATA_code.append(data)\n",
|
||||
"print(f'读取到 对应关系维护表中 {len(ALL_DATA_code)} 条数据!')\n",
|
||||
"\n",
|
||||
"wb = openpyxl.Workbook()\n",
|
||||
"sheet = wb.active\n",
|
||||
"# 写入数据到单元格中\n",
|
||||
"a_date = '2023-11-01' # 手动输入时间\n",
|
||||
"cell_x = 2\n",
|
||||
"cell_y = 1\n",
|
||||
"for i in range(0,len(ALL_DATA_code)):\n",
|
||||
" a_date_new = datetime.strptime(a_date, '%Y-%m-%d')\n",
|
||||
" b_date = datetime.strptime(ALL_DATA_code[i]['createdTimeGMT'][:10], '%Y-%m-%d')\n",
|
||||
" if a_date_new <= b_date:\n",
|
||||
" list_x = 0\n",
|
||||
" sheet.cell(row=cell_x, column=cell_y, value=\"字段对应关系类型:\") \n",
|
||||
" sheet.cell(row=cell_x, column=cell_y + 1, value=ALL_DATA_code[i]['formData']['textField_ldo3qxao']) \n",
|
||||
" sheet.cell(row=cell_x, column=cell_y + 2, value=\"创建人:\") \n",
|
||||
" sheet.cell(row=cell_x, column=cell_y + 3, value=ALL_DATA_code[i]['formData']['textField_ldo3qxam']) \n",
|
||||
" sheet.cell(row=cell_x, column=cell_y + 4, value=\"模板名称:\") \n",
|
||||
" sheet.cell(row=cell_x, column=cell_y + 5, value=ALL_DATA_code[i]['formData']['textField_ldo3qxan']) \n",
|
||||
" sheet.cell(row=cell_x, column=cell_y + 6, value=\"创建时间:\") \n",
|
||||
" sheet.cell(row=cell_x, column=cell_y + 7, value=ALL_DATA_code[i]['createdTimeGMT']) \n",
|
||||
" sheet.cell(row=cell_x, column=cell_y + 8, value=\"表单实例id:\") \n",
|
||||
" sheet.cell(row=cell_x, column=cell_y + 9, value=ALL_DATA_code[i]['formInstanceId']) \n",
|
||||
" sheet.cell(row=cell_x, column=cell_y + 10, value=\"删除\") \n",
|
||||
" sheet.cell(row=cell_x, column=cell_y + 11, value=\"新增\") \n",
|
||||
"\n",
|
||||
"\n",
|
||||
" list_new = json.loads(ALL_DATA_code[i]['formData']['textField_ldo3qxap'].replace(\"'\", '\"'))\n",
|
||||
" for a in range(0,len(list_new)):\n",
|
||||
" sheet.cell(row=cell_x + 1, column=cell_y + a, value=list_new[a]) \n",
|
||||
"\n",
|
||||
" list_new = json.loads(ALL_DATA_code[i]['formData']['textField_ldo3qxaq'].replace(\"'\", '\"'))\n",
|
||||
" for a in range(0,len(list_new)):\n",
|
||||
" sheet.cell(row=cell_x + 2, column=cell_y + a, value=list_new[a]) \n",
|
||||
"\n",
|
||||
" chinese_str = ALL_DATA_code[i]['formData']['textField_ldo3qxar'].encode('utf-8').decode('unicode_escape')\n",
|
||||
" try:\n",
|
||||
" list_y = 0\n",
|
||||
" for b in json.loads(chinese_str):\n",
|
||||
" for key, value in json.loads(chinese_str)[b].items():\n",
|
||||
" sheet.cell(row=cell_x + int(key), column=cell_y + list_y, value=value) \n",
|
||||
" list_y = list_y + 1\n",
|
||||
" list_x = 15\n",
|
||||
" except:\n",
|
||||
" sheet.cell(row=cell_x + 3, column=cell_y, value=\"原始数据格式有误,无法转换!\") \n",
|
||||
" list_x = 6\n",
|
||||
"\n",
|
||||
" cell_x = cell_x + cell_y + list_x\n",
|
||||
"# 保存文件\n",
|
||||
"wb.save(r'C:\\Users\\admin\\Desktop\\Python脚本\\图形界面自动化脚本\\其它系统脚本\\输出文件.xlsx')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 9,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"40"
|
||||
]
|
||||
},
|
||||
"execution_count": 9,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"PAGES"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 171,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"1\n",
|
||||
"{'result': 'FINST-BTA66F71JGVAFG3FBVZGD4ORMSPB3YTUWQSHLM62'}\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"# 基础函数配置\n",
|
||||
"import pandas as pd\n",
|
||||
"import requests\n",
|
||||
"from pathlib import Path\n",
|
||||
"from urllib.parse import quote\n",
|
||||
"import json\n",
|
||||
"import numpy as np\n",
|
||||
"import time\n",
|
||||
"import openpyxl\n",
|
||||
"from datetime import datetime\n",
|
||||
"\n",
|
||||
"ROOT = Path('.').absolute() # 当前工作目录\n",
|
||||
"\n",
|
||||
"def generateToken() -> str:\n",
|
||||
" \"\"\" 生成 token \"\"\"\n",
|
||||
"\n",
|
||||
" token_api = 'https://api.dingtalk.com/v1.0/oauth2/accessToken'\n",
|
||||
"\n",
|
||||
" # 该信息在钉钉开放应用中\n",
|
||||
" data = {\n",
|
||||
" \"appKey\": \"ding5kqocon5s9oph5uq\",\n",
|
||||
" \"appSecret\": 'HL1jgsIIfLAC0eTH0A1m4mwxUDqbgsiPeCCGGE3ocM6qJBTIW7Ivt9drxF_Z4Kb_'\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" res = requests.post(token_api, json=data)\n",
|
||||
" token = res.json()['accessToken']\n",
|
||||
"\n",
|
||||
" return token\n",
|
||||
"def read_instances(token, formUuid, page, n):\n",
|
||||
" \"\"\" 函数功能:读取普通表单的所有数据 \"\"\"\n",
|
||||
"\n",
|
||||
" api = f'https://api.dingtalk.com//v1.0/yida/forms/instances/search'\n",
|
||||
"\n",
|
||||
" headers = {\n",
|
||||
" \"Content-Type\": \"application/json\",\n",
|
||||
" \"x-acs-dingtalk-access-token\": token\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" formData = {\n",
|
||||
" \"appType\" : \"APP_TNVBVZ3K8G56HG03Z45Q\",\n",
|
||||
" \"systemToken\" : \"CH7669818R0WN18TYTYJ42PE6GY22WZN0BYWKD1\",\n",
|
||||
" \"userId\" : \"yida_pub_account\",\n",
|
||||
" \"language\" : \"zh_CN\",\n",
|
||||
" \"formUuid\" : formUuid,\n",
|
||||
" \"currentPage\" : page,\n",
|
||||
" \"pageSize\" : n\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" res = requests.post(api, headers=headers, json=formData)\n",
|
||||
" return res.json()\n",
|
||||
"\n",
|
||||
"def update_instances(TOKEN, processInstanceId):\n",
|
||||
" \"\"\" 更新表单实例 \"\"\"\n",
|
||||
"\n",
|
||||
" api = f'https://api.dingtalk.com//v1.0/yida/forms/instances'\n",
|
||||
"\n",
|
||||
" headers = {\n",
|
||||
" \"Content-Type\": \"application/json\",\n",
|
||||
" \"x-acs-dingtalk-access-token\": TOKEN\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" data_new= {\n",
|
||||
" 'selectField_ldo3qxal' : \"删除\" # 对应关系性质\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" payload = {\n",
|
||||
" \"appType\" : \"APP_TNVBVZ3K8G56HG03Z45Q\",\n",
|
||||
" \"systemToken\" : \"CH7669818R0WN18TYTYJ42PE6GY22WZN0BYWKD1\",\n",
|
||||
" \"userId\" : \"yida_pub_account\",\n",
|
||||
" \"language\" : \"zh_CN\",\n",
|
||||
" \"formInstanceId\" : processInstanceId,\n",
|
||||
" \"useLatestVersion\" : 'false',\n",
|
||||
" \"updateFormDataJson\" : json.dumps(data_new, cls=NpEncoder) #json.dumps(data_new, cls=NpEncoder)\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" res = requests.put(api, headers=headers,json =payload)\n",
|
||||
" print(\"修改成功!\")\n",
|
||||
"\n",
|
||||
" return res.json()\n",
|
||||
"\n",
|
||||
"def read_new(FORMID,formData):\n",
|
||||
" \"\"\" 通过实例id 新增普通表单实例 \"\"\"\n",
|
||||
" api = f'https://api.dingtalk.com/v1.0/yida/forms/instances'\n",
|
||||
"\n",
|
||||
" headers = {\n",
|
||||
" \"Content-Type\": \"application/json\",\n",
|
||||
" \"x-acs-dingtalk-access-token\": TOKEN\n",
|
||||
" }\n",
|
||||
" payload = {\n",
|
||||
" \"formUuid\" : FORMID,\n",
|
||||
" \"appType\" : \"APP_TNVBVZ3K8G56HG03Z45Q\",\n",
|
||||
" \"formDataJson\" : json.dumps(formData, cls=NpEncoder),\n",
|
||||
" \"systemToken\" : \"CH7669818R0WN18TYTYJ42PE6GY22WZN0BYWKD1\",\n",
|
||||
" \"language\" : \"zh_CN\",\n",
|
||||
" \"userId\" : \"yida_pub_account\"\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" res = requests.post(api, headers=headers, json=payload)\n",
|
||||
" print(res.json())\n",
|
||||
"\n",
|
||||
" return res.json()\n",
|
||||
"\n",
|
||||
"class NpEncoder(json.JSONEncoder):\n",
|
||||
" def default(self, obj):\n",
|
||||
" if isinstance(obj, np.integer):\n",
|
||||
" return int(obj)\n",
|
||||
" elif isinstance(obj, np.floating):\n",
|
||||
" return float(obj)\n",
|
||||
" elif isinstance(obj, np.ndarray):\n",
|
||||
" return obj.tolist()\n",
|
||||
" else:\n",
|
||||
" return super(NpEncoder, self).default(obj)\n",
|
||||
" \n",
|
||||
"df_data = pd.read_excel(r'C:\\Users\\admin\\Desktop\\Python脚本\\图形界面自动化脚本\\其它系统脚本\\输出文件.xlsx',dtype='string')\n",
|
||||
"df_data = df_data.astype('string')\n",
|
||||
"df_data.fillna('', inplace=True)\n",
|
||||
"TOKEN = generateToken()\n",
|
||||
"for i in range(0,len(df_data)):\n",
|
||||
" if df_data.iloc[i,10] == \"删除\":\n",
|
||||
" update_instances(TOKEN, df_data.iloc[i,9]) \n",
|
||||
"for i in range(0,len(df_data)):\n",
|
||||
" if df_data.iloc[i,11] == \"新增\":\n",
|
||||
" list_new = list(filter(lambda s: not s.startswith('Unnamed'), df_data.iloc[i + 1,:].fillna('').map(str).str.strip().values))[:len(df_data.iloc[i + 1,:].dropna())]\n",
|
||||
" while list_new[-1] == '':\n",
|
||||
" list_new.pop()\n",
|
||||
" list_new2 = list(filter(lambda s: not s.startswith('Unnamed'), df_data.iloc[i + 2,:].fillna('').map(str).str.strip().values))[:len(df_data.iloc[i + 2,:].dropna())]\n",
|
||||
" while list_new2[-1] == '':\n",
|
||||
" list_new2.pop()\n",
|
||||
" \n",
|
||||
" formData = {\n",
|
||||
" 'selectField_ldo3qxal':'公有',# 对应关系性质\n",
|
||||
" 'textField_ldo3qxam':'数据支持',# 提交人员\n",
|
||||
" 'textField_ldo3qxan':'默认',# 对应关系名称\n",
|
||||
" 'textField_ldo3qxao':df_data.iloc[i,1],# 数据类型\n",
|
||||
" 'textField_ldo3qxap':list_new,# 原始数据列\n",
|
||||
" 'textField_ldo3qxaq':list_new2,# 对应关系\n",
|
||||
" }\n",
|
||||
" print(\"1\")\n",
|
||||
" read_new(FORMID,formData)\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"df_data.loc[0:2]"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 153,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"Unnamed: 0 发卡日期\n",
|
||||
"Unnamed: 1 卡号\n",
|
||||
"Unnamed: 2 车牌号\n",
|
||||
"Unnamed: 3 姓名\n",
|
||||
"Unnamed: 4 手机号\n",
|
||||
"Unnamed: 5 卡名称(类型)\n",
|
||||
"Unnamed: 6 剩余金额\n",
|
||||
"Unnamed: 7 \n",
|
||||
"Unnamed: 8 \n",
|
||||
"Unnamed: 9 \n",
|
||||
"Unnamed: 10 \n",
|
||||
"Unnamed: 11 \n",
|
||||
"Name: 1, dtype: string"
|
||||
]
|
||||
},
|
||||
"execution_count": 153,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"df_data.iloc[1,:]"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 159,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"array(['发卡日期', '卡号', '车牌号', '姓名', '手机号', '卡名称(类型)', '剩余金额', '', '', '',\n",
|
||||
" '', ''], dtype=object)"
|
||||
]
|
||||
},
|
||||
"execution_count": 159,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"df_data.iloc[1,:].fillna('').map(str).str.strip().values"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 161,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"'发卡日期卡号车牌号姓名手机号卡名称(类型)剩余金额'"
|
||||
]
|
||||
},
|
||||
"execution_count": 161,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"''.join(filter(lambda s: not s.startswith('Unnamed'), df_data.iloc[1,:].fillna('').map(str).str.strip().values))"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 155,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def get_data_cols_raw(df, three=False,join=True):\n",
|
||||
" \"\"\"\n",
|
||||
" 函数功能:\n",
|
||||
" 获取表格数据 中源数据的列名 \n",
|
||||
" 输入:\n",
|
||||
" df:表格数据\n",
|
||||
" three: \n",
|
||||
" False 表明不是统一格式的excel表格数据,\n",
|
||||
" True 表明是统一格式的表格数据\n",
|
||||
"\n",
|
||||
" 输出:\n",
|
||||
" 各个列名拼接在一起的 \"字符串\"\n",
|
||||
" \"\"\"\n",
|
||||
" if join:\n",
|
||||
" if three:\n",
|
||||
" return ''.join(filter(lambda s: not s.startswith('Unnamed'), df.fillna('').map(str).str.strip().values))\n",
|
||||
" else:\n",
|
||||
" return ''.join(filter(lambda s: not s.startswith('Unnamed'), df.columns.map(str).str.strip().values))\n",
|
||||
" else:\n",
|
||||
" if three:\n",
|
||||
" return list(filter(lambda s: not s.startswith('Unnamed'), df.fillna('').map(str).str.strip().values))[:len(df.iloc[1].dropna())]\n",
|
||||
" else:\n",
|
||||
" return list(filter(lambda s: not s.startswith('Unnamed'), df.columns.map(str).str.strip().values))"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 169,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"['售卡日期', '卡号', '绑定车牌号', '持卡人姓名', '持卡人手机号', '卡名称', '剩余实额']"
|
||||
]
|
||||
},
|
||||
"execution_count": 169,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"list_new = list(filter(lambda s: not s.startswith('Unnamed'), df_data.iloc[2,:].fillna('').map(str).str.strip().values))[:len(df_data.iloc[2,:].dropna())]\n",
|
||||
"while list_new[-1] == '':\n",
|
||||
" list_new.pop()\n",
|
||||
"list_new"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 156,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"ename": "AttributeError",
|
||||
"evalue": "'str' object has no attribute 'dropna'",
|
||||
"output_type": "error",
|
||||
"traceback": [
|
||||
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
|
||||
"\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)",
|
||||
"\u001b[1;32m<ipython-input-156-5ff2dbf1e51f>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mraw_data_cols2\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mget_data_cols_raw\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdf_data\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0miloc\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mthree\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mTrue\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mjoin\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mFalse\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;31m# list\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[0mraw_data_cols2\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
|
||||
"\u001b[1;32m<ipython-input-155-1cb52dd44851>\u001b[0m in \u001b[0;36mget_data_cols_raw\u001b[1;34m(df, three, join)\u001b[0m\n\u001b[0;32m 19\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 20\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mthree\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 21\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mlist\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfilter\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;32mlambda\u001b[0m \u001b[0ms\u001b[0m\u001b[1;33m:\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0ms\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstartswith\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Unnamed'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdf\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfillna\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m''\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmap\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mstr\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstr\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstrip\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;33m:\u001b[0m\u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdf\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0miloc\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdropna\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 22\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 23\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mlist\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfilter\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;32mlambda\u001b[0m \u001b[0ms\u001b[0m\u001b[1;33m:\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0ms\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstartswith\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Unnamed'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdf\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmap\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mstr\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstr\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstrip\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
|
||||
"\u001b[1;31mAttributeError\u001b[0m: 'str' object has no attribute 'dropna'"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"raw_data_cols2 = get_data_cols_raw(df_data.iloc[2,:], three=True,join=False) # list\n",
|
||||
"raw_data_cols2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"\n",
|
||||
"\n",
|
||||
"TOKEN = generateToken()\n",
|
||||
"FORMID = \"FORM-JD8668C1CAC7X39ND7GNN4O8D2UA3L21P3ODL22\" # 对应关系维护\n",
|
||||
"for i in range(0,len(data_F6)):\n",
|
||||
" formData = {\n",
|
||||
" \"textField_xgaye7b\":data_F6[\"date_fmt\"][i],\n",
|
||||
" \"textField_5aunjjz\":data_F6[\"to_grant_employee_id\"][i],\n",
|
||||
" \"employeeField_lft1hn2e\":[v['formData']['textField_lfrw3u59'] for v in ALL_DATA_staff if v['formData']['textField_lfrw3u58']== data_F6[\"to_grant_person\"][i]],\n",
|
||||
" \"employeeField_lft1hn2f\":[v['formData']['textField_lfrw3u59'] for v in ALL_DATA_staff if v['formData']['textField_lfrw3u58']== data_F6[\"area_manager\"][i]],\n",
|
||||
" }\n",
|
||||
" read_new(FORMID,formData)"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "F6processing",
|
||||
"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.9.4"
|
||||
},
|
||||
"orig_nbformat": 4
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2
|
||||
}
|
||||
Reference in New Issue
Block a user