日常回访多公司派发一个
This commit is contained in:
@@ -1 +1,15 @@
|
||||
2025-08-12 13:50:03,815 - log测试.py - task_logger - INFO - 开始执行任务
|
||||
2025-08-14 14:12:22,683 - api.py - task_logger - INFO - 已获取 2 条数据
|
||||
2025-08-14 14:13:25,854 - api.py - task_logger - INFO - 已获取 2 条数据
|
||||
2025-08-14 14:15:25,347 - api.py - task_logger - INFO - 已获取 2 条数据
|
||||
2025-08-14 14:15:56,305 - api.py - task_logger - INFO - 已获取 2 条数据
|
||||
2025-08-14 14:17:01,623 - api.py - task_logger - INFO - 已获取 2 条数据
|
||||
2025-08-14 14:17:51,420 - api.py - task_logger - INFO - 已获取 2 条数据
|
||||
2025-08-14 14:19:31,387 - api.py - task_logger - INFO - 已获取 2 条数据
|
||||
2025-08-14 14:21:05,891 - api.py - task_logger - INFO - 已获取 2 条数据
|
||||
2025-08-14 14:21:15,146 - api.py - task_logger - INFO - 已获取 2 条数据
|
||||
2025-08-14 14:21:29,218 - api.py - task_logger - INFO - 已获取 2 条数据
|
||||
2025-08-18 10:54:10,135 - api.py - task_logger - INFO - 已获取 3 条数据
|
||||
2025-08-18 10:54:42,864 - api.py - task_logger - INFO - 已获取 3 条数据
|
||||
2025-08-18 10:58:48,082 - api.py - task_logger - INFO - 已获取 3 条数据
|
||||
2025-08-18 10:59:36,818 - api.py - task_logger - INFO - 已获取 3 条数据
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
from datetime import datetime
|
||||
import os
|
||||
from config import Config
|
||||
import pandas as pd
|
||||
from back_ground_module import CommonModule
|
||||
from api import API
|
||||
from log_config import configure_task_logger, configure_error_task_logger
|
||||
|
||||
logger = configure_task_logger()
|
||||
error_task_logger = configure_error_task_logger()
|
||||
output_dir = "output" # 设置输出目录
|
||||
os.makedirs(output_dir, exist_ok=True)
|
||||
common_module = CommonModule()
|
||||
api_instance = API()
|
||||
|
||||
# 获取多公司过滤表
|
||||
payload = {"api_key": "675b900991ad2491c69389ca", "entry_id": "689bf5f8ba88a28cb0679ec9"}
|
||||
get_filter_company_list = api_instance.entry_data_list(payload).get("data", [])
|
||||
|
||||
|
||||
all_filter_company_list = []
|
||||
for company in get_filter_company_list:
|
||||
company_list = company.get("_widget_1755052002491")
|
||||
for company_item in company_list:
|
||||
if company_item.get("_widget_1755052002496") == "否":
|
||||
all_filter_company_list.append(company_item.get("_widget_1755052002495"))
|
||||
|
||||
print("所有过滤公司:", all_filter_company_list)
|
||||
+46
-211
@@ -306,8 +306,8 @@
|
||||
{
|
||||
"metadata": {
|
||||
"ExecuteTime": {
|
||||
"end_time": "2025-08-12T03:36:29.254835Z",
|
||||
"start_time": "2025-08-12T03:36:27.737672Z"
|
||||
"end_time": "2025-08-14T06:21:29.349444Z",
|
||||
"start_time": "2025-08-14T06:21:28.784674Z"
|
||||
}
|
||||
},
|
||||
"cell_type": "code",
|
||||
@@ -443,12 +443,19 @@
|
||||
" .dt.tz_localize(None)\n",
|
||||
" .dt.strftime('%Y-%m-%d %H:%M:%S')\n",
|
||||
" )\n",
|
||||
" df.to_csv(\"feibiao.csv\", index=False)\n",
|
||||
"\n",
|
||||
" # 4.处理所有配置的列表字段\n",
|
||||
" for field_name, field_config in self.list_fields_config.items():\n",
|
||||
" if field_name in df.columns:\n",
|
||||
" df[field_name] = df[field_name].apply(\n",
|
||||
" lambda x: self.process_list_field(x, field_config) if pd.notna(x) else None\n",
|
||||
" lambda x: (\n",
|
||||
" self.process_list_field(x, field_config)\n",
|
||||
" if (isinstance(x, np.ndarray) and x.size > 0) # 非空 NumPy 数组\n",
|
||||
" or (isinstance(x, list) and len(x) > 0) # 非空列表\n",
|
||||
" or (not isinstance(x, (np.ndarray, list)) and x is not None and not pd.isna(x)) # 其他非空值\n",
|
||||
" else None # 空数组、空列表、None、NaN 都返回 None\n",
|
||||
" )\n",
|
||||
" )\n",
|
||||
"\n",
|
||||
" return df\n",
|
||||
@@ -564,7 +571,8 @@
|
||||
"\n",
|
||||
" # step2:数据处理\n",
|
||||
" df = self.data_process()\n",
|
||||
" # df.to_csv(os.path.join(output_dir, \"new_dealer_service_order_to_bi.csv\"))\n",
|
||||
" print(df)\n",
|
||||
" df.to_csv(os.path.join(output_dir, \"new_dealer_service_order_to_bi.csv\"))\n",
|
||||
"\n",
|
||||
" # step3:数据库删除\n",
|
||||
" # self.clear_table_data()\n",
|
||||
@@ -582,222 +590,49 @@
|
||||
"id": "c63f1a4b217a1576",
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"name": "stderr",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"1de1bc8bae6d3111bb0f6332472b8cd4\n",
|
||||
"1de1bc8bae6d3111bb0f6332472b8cd4\n",
|
||||
"已获取 2 条数据\n"
|
||||
"\u001B[92m2025-08-14 14:21:29,218 - api.py - task_logger - INFO - 已获取 2 条数据\u001B[0m\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"ename": "ValueError",
|
||||
"evalue": "The truth value of an empty array is ambiguous. Use `array.size > 0` to check that an array is not empty.",
|
||||
"output_type": "error",
|
||||
"traceback": [
|
||||
"\u001B[31m---------------------------------------------------------------------------\u001B[39m",
|
||||
"\u001B[31mValueError\u001B[39m Traceback (most recent call last)",
|
||||
"\u001B[36mCell\u001B[39m\u001B[36m \u001B[39m\u001B[32mIn[11]\u001B[39m\u001B[32m, line 266\u001B[39m\n\u001B[32m 264\u001B[39m \u001B[38;5;28;01mif\u001B[39;00m \u001B[34m__name__\u001B[39m == \u001B[33m'\u001B[39m\u001B[33m__main__\u001B[39m\u001B[33m'\u001B[39m:\n\u001B[32m 265\u001B[39m start = NewDealerServiceOrderToBI()\n\u001B[32m--> \u001B[39m\u001B[32m266\u001B[39m \u001B[43mstart\u001B[49m\u001B[43m.\u001B[49m\u001B[43mmain\u001B[49m\u001B[43m(\u001B[49m\u001B[43m)\u001B[49m\n",
|
||||
"\u001B[36mCell\u001B[39m\u001B[36m \u001B[39m\u001B[32mIn[11]\u001B[39m\u001B[32m, line 252\u001B[39m, in \u001B[36mNewDealerServiceOrderToBI.main\u001B[39m\u001B[34m(self)\u001B[39m\n\u001B[32m 249\u001B[39m \u001B[38;5;28mself\u001B[39m.load_all_data()\n\u001B[32m 251\u001B[39m \u001B[38;5;66;03m# step2:数据处理\u001B[39;00m\n\u001B[32m--> \u001B[39m\u001B[32m252\u001B[39m df = \u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43mdata_process\u001B[49m\u001B[43m(\u001B[49m\u001B[43m)\u001B[49m\n",
|
||||
"\u001B[36mCell\u001B[39m\u001B[36m \u001B[39m\u001B[32mIn[11]\u001B[39m\u001B[32m, line 136\u001B[39m, in \u001B[36mNewDealerServiceOrderToBI.data_process\u001B[39m\u001B[34m(self)\u001B[39m\n\u001B[32m 134\u001B[39m \u001B[38;5;28;01mfor\u001B[39;00m field_name, field_config \u001B[38;5;129;01min\u001B[39;00m \u001B[38;5;28mself\u001B[39m.list_fields_config.items():\n\u001B[32m 135\u001B[39m \u001B[38;5;28;01mif\u001B[39;00m field_name \u001B[38;5;129;01min\u001B[39;00m df.columns:\n\u001B[32m--> \u001B[39m\u001B[32m136\u001B[39m df[field_name] = \u001B[43mdf\u001B[49m\u001B[43m[\u001B[49m\u001B[43mfield_name\u001B[49m\u001B[43m]\u001B[49m\u001B[43m.\u001B[49m\u001B[43mapply\u001B[49m\u001B[43m(\u001B[49m\n\u001B[32m 137\u001B[39m \u001B[43m \u001B[49m\u001B[38;5;28;43;01mlambda\u001B[39;49;00m\u001B[43m \u001B[49m\u001B[43mx\u001B[49m\u001B[43m:\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43mprocess_list_field\u001B[49m\u001B[43m(\u001B[49m\u001B[43mx\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mfield_config\u001B[49m\u001B[43m)\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;28;43;01mif\u001B[39;49;00m\u001B[43m \u001B[49m\u001B[43mpd\u001B[49m\u001B[43m.\u001B[49m\u001B[43mnotna\u001B[49m\u001B[43m(\u001B[49m\u001B[43mx\u001B[49m\u001B[43m)\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;28;43;01melse\u001B[39;49;00m\u001B[43m \u001B[49m\u001B[38;5;28;43;01mNone\u001B[39;49;00m\n\u001B[32m 138\u001B[39m \u001B[43m \u001B[49m\u001B[43m)\u001B[49m\n\u001B[32m 140\u001B[39m \u001B[38;5;28;01mreturn\u001B[39;00m df\n",
|
||||
"\u001B[36mFile \u001B[39m\u001B[32mD:\\ProgramTools\\anaconda3\\envs\\jdy\\Lib\\site-packages\\pandas\\core\\series.py:4935\u001B[39m, in \u001B[36mSeries.apply\u001B[39m\u001B[34m(self, func, convert_dtype, args, by_row, **kwargs)\u001B[39m\n\u001B[32m 4800\u001B[39m \u001B[38;5;28;01mdef\u001B[39;00m\u001B[38;5;250m \u001B[39m\u001B[34mapply\u001B[39m(\n\u001B[32m 4801\u001B[39m \u001B[38;5;28mself\u001B[39m,\n\u001B[32m 4802\u001B[39m func: AggFuncType,\n\u001B[32m (...)\u001B[39m\u001B[32m 4807\u001B[39m **kwargs,\n\u001B[32m 4808\u001B[39m ) -> DataFrame | Series:\n\u001B[32m 4809\u001B[39m \u001B[38;5;250m \u001B[39m\u001B[33;03m\"\"\"\u001B[39;00m\n\u001B[32m 4810\u001B[39m \u001B[33;03m Invoke function on values of Series.\u001B[39;00m\n\u001B[32m 4811\u001B[39m \n\u001B[32m (...)\u001B[39m\u001B[32m 4926\u001B[39m \u001B[33;03m dtype: float64\u001B[39;00m\n\u001B[32m 4927\u001B[39m \u001B[33;03m \"\"\"\u001B[39;00m\n\u001B[32m 4928\u001B[39m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[43mSeriesApply\u001B[49m\u001B[43m(\u001B[49m\n\u001B[32m 4929\u001B[39m \u001B[43m \u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[43m,\u001B[49m\n\u001B[32m 4930\u001B[39m \u001B[43m \u001B[49m\u001B[43mfunc\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 4931\u001B[39m \u001B[43m \u001B[49m\u001B[43mconvert_dtype\u001B[49m\u001B[43m=\u001B[49m\u001B[43mconvert_dtype\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 4932\u001B[39m \u001B[43m \u001B[49m\u001B[43mby_row\u001B[49m\u001B[43m=\u001B[49m\u001B[43mby_row\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 4933\u001B[39m \u001B[43m \u001B[49m\u001B[43margs\u001B[49m\u001B[43m=\u001B[49m\u001B[43margs\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 4934\u001B[39m \u001B[43m \u001B[49m\u001B[43mkwargs\u001B[49m\u001B[43m=\u001B[49m\u001B[43mkwargs\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m-> \u001B[39m\u001B[32m4935\u001B[39m \u001B[43m \u001B[49m\u001B[43m)\u001B[49m\u001B[43m.\u001B[49m\u001B[43mapply\u001B[49m\u001B[43m(\u001B[49m\u001B[43m)\u001B[49m\n",
|
||||
"\u001B[36mFile \u001B[39m\u001B[32mD:\\ProgramTools\\anaconda3\\envs\\jdy\\Lib\\site-packages\\pandas\\core\\apply.py:1422\u001B[39m, in \u001B[36mSeriesApply.apply\u001B[39m\u001B[34m(self)\u001B[39m\n\u001B[32m 1419\u001B[39m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[38;5;28mself\u001B[39m.apply_compat()\n\u001B[32m 1421\u001B[39m \u001B[38;5;66;03m# self.func is Callable\u001B[39;00m\n\u001B[32m-> \u001B[39m\u001B[32m1422\u001B[39m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43mapply_standard\u001B[49m\u001B[43m(\u001B[49m\u001B[43m)\u001B[49m\n",
|
||||
"\u001B[36mFile \u001B[39m\u001B[32mD:\\ProgramTools\\anaconda3\\envs\\jdy\\Lib\\site-packages\\pandas\\core\\apply.py:1502\u001B[39m, in \u001B[36mSeriesApply.apply_standard\u001B[39m\u001B[34m(self)\u001B[39m\n\u001B[32m 1496\u001B[39m \u001B[38;5;66;03m# row-wise access\u001B[39;00m\n\u001B[32m 1497\u001B[39m \u001B[38;5;66;03m# apply doesn't have a `na_action` keyword and for backward compat reasons\u001B[39;00m\n\u001B[32m 1498\u001B[39m \u001B[38;5;66;03m# we need to give `na_action=\"ignore\"` for categorical data.\u001B[39;00m\n\u001B[32m 1499\u001B[39m \u001B[38;5;66;03m# TODO: remove the `na_action=\"ignore\"` when that default has been changed in\u001B[39;00m\n\u001B[32m 1500\u001B[39m \u001B[38;5;66;03m# Categorical (GH51645).\u001B[39;00m\n\u001B[32m 1501\u001B[39m action = \u001B[33m\"\u001B[39m\u001B[33mignore\u001B[39m\u001B[33m\"\u001B[39m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;28misinstance\u001B[39m(obj.dtype, CategoricalDtype) \u001B[38;5;28;01melse\u001B[39;00m \u001B[38;5;28;01mNone\u001B[39;00m\n\u001B[32m-> \u001B[39m\u001B[32m1502\u001B[39m mapped = \u001B[43mobj\u001B[49m\u001B[43m.\u001B[49m\u001B[43m_map_values\u001B[49m\u001B[43m(\u001B[49m\n\u001B[32m 1503\u001B[39m \u001B[43m \u001B[49m\u001B[43mmapper\u001B[49m\u001B[43m=\u001B[49m\u001B[43mcurried\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mna_action\u001B[49m\u001B[43m=\u001B[49m\u001B[43maction\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mconvert\u001B[49m\u001B[43m=\u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43mconvert_dtype\u001B[49m\n\u001B[32m 1504\u001B[39m \u001B[43m\u001B[49m\u001B[43m)\u001B[49m\n\u001B[32m 1506\u001B[39m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;28mlen\u001B[39m(mapped) \u001B[38;5;129;01mand\u001B[39;00m \u001B[38;5;28misinstance\u001B[39m(mapped[\u001B[32m0\u001B[39m], ABCSeries):\n\u001B[32m 1507\u001B[39m \u001B[38;5;66;03m# GH#43986 Need to do list(mapped) in order to get treated as nested\u001B[39;00m\n\u001B[32m 1508\u001B[39m \u001B[38;5;66;03m# See also GH#25959 regarding EA support\u001B[39;00m\n\u001B[32m 1509\u001B[39m \u001B[38;5;28;01mreturn\u001B[39;00m obj._constructor_expanddim(\u001B[38;5;28mlist\u001B[39m(mapped), index=obj.index)\n",
|
||||
"\u001B[36mFile \u001B[39m\u001B[32mD:\\ProgramTools\\anaconda3\\envs\\jdy\\Lib\\site-packages\\pandas\\core\\base.py:925\u001B[39m, in \u001B[36mIndexOpsMixin._map_values\u001B[39m\u001B[34m(self, mapper, na_action, convert)\u001B[39m\n\u001B[32m 922\u001B[39m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;28misinstance\u001B[39m(arr, ExtensionArray):\n\u001B[32m 923\u001B[39m \u001B[38;5;28;01mreturn\u001B[39;00m arr.map(mapper, na_action=na_action)\n\u001B[32m--> \u001B[39m\u001B[32m925\u001B[39m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[43malgorithms\u001B[49m\u001B[43m.\u001B[49m\u001B[43mmap_array\u001B[49m\u001B[43m(\u001B[49m\u001B[43marr\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mmapper\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mna_action\u001B[49m\u001B[43m=\u001B[49m\u001B[43mna_action\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mconvert\u001B[49m\u001B[43m=\u001B[49m\u001B[43mconvert\u001B[49m\u001B[43m)\u001B[49m\n",
|
||||
"\u001B[36mFile \u001B[39m\u001B[32mD:\\ProgramTools\\anaconda3\\envs\\jdy\\Lib\\site-packages\\pandas\\core\\algorithms.py:1743\u001B[39m, in \u001B[36mmap_array\u001B[39m\u001B[34m(arr, mapper, na_action, convert)\u001B[39m\n\u001B[32m 1741\u001B[39m values = arr.astype(\u001B[38;5;28mobject\u001B[39m, copy=\u001B[38;5;28;01mFalse\u001B[39;00m)\n\u001B[32m 1742\u001B[39m \u001B[38;5;28;01mif\u001B[39;00m na_action \u001B[38;5;129;01mis\u001B[39;00m \u001B[38;5;28;01mNone\u001B[39;00m:\n\u001B[32m-> \u001B[39m\u001B[32m1743\u001B[39m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[43mlib\u001B[49m\u001B[43m.\u001B[49m\u001B[43mmap_infer\u001B[49m\u001B[43m(\u001B[49m\u001B[43mvalues\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mmapper\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mconvert\u001B[49m\u001B[43m=\u001B[49m\u001B[43mconvert\u001B[49m\u001B[43m)\u001B[49m\n\u001B[32m 1744\u001B[39m \u001B[38;5;28;01melse\u001B[39;00m:\n\u001B[32m 1745\u001B[39m \u001B[38;5;28;01mreturn\u001B[39;00m lib.map_infer_mask(\n\u001B[32m 1746\u001B[39m values, mapper, mask=isna(values).view(np.uint8), convert=convert\n\u001B[32m 1747\u001B[39m )\n",
|
||||
"\u001B[36mFile \u001B[39m\u001B[32mpandas/_libs/lib.pyx:2999\u001B[39m, in \u001B[36mpandas._libs.lib.map_infer\u001B[39m\u001B[34m()\u001B[39m\n",
|
||||
"\u001B[36mCell\u001B[39m\u001B[36m \u001B[39m\u001B[32mIn[11]\u001B[39m\u001B[32m, line 137\u001B[39m, in \u001B[36mNewDealerServiceOrderToBI.data_process.<locals>.<lambda>\u001B[39m\u001B[34m(x)\u001B[39m\n\u001B[32m 134\u001B[39m \u001B[38;5;28;01mfor\u001B[39;00m field_name, field_config \u001B[38;5;129;01min\u001B[39;00m \u001B[38;5;28mself\u001B[39m.list_fields_config.items():\n\u001B[32m 135\u001B[39m \u001B[38;5;28;01mif\u001B[39;00m field_name \u001B[38;5;129;01min\u001B[39;00m df.columns:\n\u001B[32m 136\u001B[39m df[field_name] = df[field_name].apply(\n\u001B[32m--> \u001B[39m\u001B[32m137\u001B[39m \u001B[38;5;28;01mlambda\u001B[39;00m x: \u001B[38;5;28mself\u001B[39m.process_list_field(x, field_config) \u001B[38;5;28;01mif\u001B[39;00m pd.notna(x) \u001B[38;5;28;01melse\u001B[39;00m \u001B[38;5;28;01mNone\u001B[39;00m\n\u001B[32m 138\u001B[39m )\n\u001B[32m 140\u001B[39m \u001B[38;5;28;01mreturn\u001B[39;00m df\n",
|
||||
"\u001B[31mValueError\u001B[39m: The truth value of an empty array is ambiguous. Use `array.size > 0` to check that an array is not empty."
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
" creator \\\n",
|
||||
"0 {'name': 'F6汽车科技', 'username': '#admin', 'stat... \n",
|
||||
"1 {'name': 'F6汽车科技', 'username': '#admin', 'stat... \n",
|
||||
"\n",
|
||||
" updater deleter \\\n",
|
||||
"0 {'name': '张阳', 'username': '4210192048793363',... None \n",
|
||||
"1 {'name': '张阳', 'username': '4210192048793363',... None \n",
|
||||
"\n",
|
||||
" createTime updateTime deleteTime flowState \\\n",
|
||||
"0 2025-08-07T02:24:56.648Z 2025-08-07T02:25:35.002Z None 1 \n",
|
||||
"1 2025-08-07T02:27:43.775Z 2025-08-07T02:28:39.026Z None 1 \n",
|
||||
"\n",
|
||||
" 报备类型 协作内容 订单类型 ... 提成类型 SaaS新签提成比例 服务包提成比例 提成金额 新签提成比例-首年 \\\n",
|
||||
"0 新签超3年 SaaS新签 ... 0.00 None NaN NaN \n",
|
||||
"1 大数报表漏统计 服务包 ... 新签 0.25 None 555.0 0.25 \n",
|
||||
"\n",
|
||||
" 新签提成比例-非首年 新签阶段及提成比例 \\\n",
|
||||
"0 0 None \n",
|
||||
"1 0 [{'选择提成阶段': '688889a36f36b252847d811e', '新签阶段'... \n",
|
||||
"\n",
|
||||
" _id appId \\\n",
|
||||
"0 68940e78593f4b6b032ff3dd 66b9678280b37f8a276b1d01 \n",
|
||||
"1 68940f1f6226ebc6c7b57f65 66b9678280b37f8a276b1d01 \n",
|
||||
"\n",
|
||||
" entryId \n",
|
||||
"0 68886b7c0382a7249ae0b5d6 \n",
|
||||
"1 68886b7c0382a7249ae0b5d6 \n",
|
||||
"\n",
|
||||
"[2 rows x 39 columns]\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"execution_count": 11
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"ExecuteTime": {
|
||||
"end_time": "2025-08-12T03:35:28.295272Z",
|
||||
"start_time": "2025-08-12T03:35:26.326537Z"
|
||||
}
|
||||
},
|
||||
"cell_type": "code",
|
||||
"source": "conda list",
|
||||
"id": "fbc9dc18ab9bb710",
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"# packages in environment at D:\\ProgramTools\\anaconda3\\envs\\jdy:\n",
|
||||
"#\n",
|
||||
"# Name Version Build Channel\n",
|
||||
"api 0.0.7 pypi_0 pypi\n",
|
||||
"apscheduler 3.11.0 pypi_0 pypi\n",
|
||||
"asttokens 3.0.0 pypi_0 pypi\n",
|
||||
"attrs 24.3.0 py313haa95532_0\n",
|
||||
"beautifulsoup4 4.13.4 py313haa95532_0\n",
|
||||
"bleach 6.2.0 py313haa95532_0\n",
|
||||
"blinker 1.9.0 pypi_0 pypi\n",
|
||||
"bzip2 1.0.8 h2bbff1b_6\n",
|
||||
"ca-certificates 2025.7.15 haa95532_0\n",
|
||||
"certifi 2025.8.3 pypi_0 pypi\n",
|
||||
"charset-normalizer 3.4.3 pypi_0 pypi\n",
|
||||
"click 8.2.1 pypi_0 pypi\n",
|
||||
"colorama 0.4.6 pypi_0 pypi\n",
|
||||
"comm 0.2.3 pypi_0 pypi\n",
|
||||
"config 0.5.1 pypi_0 pypi\n",
|
||||
"cpca 0.5.5 pypi_0 pypi\n",
|
||||
"debugpy 1.8.16 pypi_0 pypi\n",
|
||||
"decorator 5.2.1 pypi_0 pypi\n",
|
||||
"defusedxml 0.7.1 pyhd3eb1b0_0\n",
|
||||
"docopt 0.6.2 pypi_0 pypi\n",
|
||||
"executing 2.2.0 pypi_0 pypi\n",
|
||||
"expat 2.7.1 h8ddb27b_0\n",
|
||||
"flask 3.1.1 pypi_0 pypi\n",
|
||||
"greenlet 3.2.4 pypi_0 pypi\n",
|
||||
"holidays 0.78 pypi_0 pypi\n",
|
||||
"idna 3.10 pypi_0 pypi\n",
|
||||
"ipykernel 6.30.1 pypi_0 pypi\n",
|
||||
"ipython 9.4.0 pypi_0 pypi\n",
|
||||
"ipython-pygments-lexers 1.1.1 pypi_0 pypi\n",
|
||||
"itsdangerous 2.2.0 pypi_0 pypi\n",
|
||||
"jedi 0.19.2 pypi_0 pypi\n",
|
||||
"jinja2 3.1.6 py313haa95532_0\n",
|
||||
"jsonschema 4.25.0 py313haa95532_0\n",
|
||||
"jsonschema-specifications 2023.7.1 py313haa95532_0\n",
|
||||
"jupyter_client 8.6.3 py313haa95532_0\n",
|
||||
"jupyter_core 5.8.1 py313haa95532_0\n",
|
||||
"jupyterlab_pygments 0.3.0 py313haa95532_0\n",
|
||||
"libffi 3.4.4 hd77b12b_1\n",
|
||||
"libmpdec 4.0.0 h827c3e9_0\n",
|
||||
"libsodium 1.0.18 h62dcd97_0\n",
|
||||
"log-config 2.1.1 pypi_0 pypi\n",
|
||||
"markupsafe 3.0.2 py313h827c3e9_0\n",
|
||||
"matplotlib-inline 0.1.7 pypi_0 pypi\n",
|
||||
"mistune 3.1.2 py313haa95532_0\n",
|
||||
"mysql-connector-repackaged 0.3.1 pypi_0 pypi\n",
|
||||
"nbclient 0.10.2 py313haa95532_0\n",
|
||||
"nbconvert 7.16.6 py313haa95532_0\n",
|
||||
"nbconvert-core 7.16.6 py313haa95532_0\n",
|
||||
"nbconvert-pandoc 7.16.6 py313haa95532_0\n",
|
||||
"nbformat 5.10.4 py313haa95532_0\n",
|
||||
"nest-asyncio 1.6.0 pypi_0 pypi\n",
|
||||
"nose 1.3.7 pypi_0 pypi\n",
|
||||
"numpy 2.3.2 pypi_0 pypi\n",
|
||||
"openssl 3.0.17 h35632f6_0\n",
|
||||
"packaging 25.0 py313haa95532_0\n",
|
||||
"pandas 2.3.1 pypi_0 pypi\n",
|
||||
"pandas-stubs 2.2.3.250308 py313haa95532_0\n",
|
||||
"pandoc 2.12 haa95532_3\n",
|
||||
"pandocfilters 1.5.0 pyhd3eb1b0_0\n",
|
||||
"parso 0.8.4 pypi_0 pypi\n",
|
||||
"pillow 11.3.0 pypi_0 pypi\n",
|
||||
"pip 25.1 pyhc872135_2\n",
|
||||
"pipreqs 0.4.13 pypi_0 pypi\n",
|
||||
"platformdirs 4.3.8 pypi_0 pypi\n",
|
||||
"playwright 1.54.0 pypi_0 pypi\n",
|
||||
"prompt-toolkit 3.0.51 pypi_0 pypi\n",
|
||||
"psutil 7.0.0 pypi_0 pypi\n",
|
||||
"psycopg2 2.9.10 pypi_0 pypi\n",
|
||||
"pure-eval 0.2.3 pypi_0 pypi\n",
|
||||
"pyahocorasick 2.2.0 pypi_0 pypi\n",
|
||||
"pyee 13.0.0 pypi_0 pypi\n",
|
||||
"pygments 2.19.2 pypi_0 pypi\n",
|
||||
"pymysql 1.1.1 pypi_0 pypi\n",
|
||||
"pytesseract 0.3.13 pypi_0 pypi\n",
|
||||
"python 3.13.5 h286a616_100_cp313\n",
|
||||
"python-dateutil 2.9.0post0 py313haa95532_2\n",
|
||||
"python-fastjsonschema 2.20.0 py313haa95532_0\n",
|
||||
"python_abi 3.13 0_cp313\n",
|
||||
"pytz 2025.2 pypi_0 pypi\n",
|
||||
"pywin32 311 py313h885b0b7_0\n",
|
||||
"pyzmq 27.0.1 pypi_0 pypi\n",
|
||||
"referencing 0.30.2 py313haa95532_0\n",
|
||||
"requests 2.32.4 pypi_0 pypi\n",
|
||||
"rpds-py 0.22.3 py313h636fa0f_0\n",
|
||||
"schedule 1.2.2 pypi_0 pypi\n",
|
||||
"setuptools 78.1.1 py313haa95532_0\n",
|
||||
"six 1.17.0 py313haa95532_0\n",
|
||||
"soupsieve 2.5 py313haa95532_0\n",
|
||||
"sqlite 3.50.2 hda9a48d_1\n",
|
||||
"stack-data 0.6.3 pypi_0 pypi\n",
|
||||
"tinycss2 1.4.0 py313haa95532_0\n",
|
||||
"tk 8.6.14 h5e9d12e_1\n",
|
||||
"tornado 6.5.2 pypi_0 pypi\n",
|
||||
"tqdm 4.67.1 pypi_0 pypi\n",
|
||||
"traitlets 5.14.3 py313haa95532_0\n",
|
||||
"typing-extensions 4.12.2 py313haa95532_0\n",
|
||||
"typing_extensions 4.12.2 py313haa95532_0\n",
|
||||
"tzdata 2025.2 pypi_0 pypi\n",
|
||||
"tzlocal 5.3.1 pypi_0 pypi\n",
|
||||
"ucrt 10.0.22621.0 haa95532_0\n",
|
||||
"urllib3 2.5.0 pypi_0 pypi\n",
|
||||
"vc 14.3 h2df5915_10\n",
|
||||
"vc14_runtime 14.44.35208 h4927774_10\n",
|
||||
"vs2015_runtime 14.44.35208 ha6b5a95_10\n",
|
||||
"waitress 3.0.2 pypi_0 pypi\n",
|
||||
"wcwidth 0.2.13 pypi_0 pypi\n",
|
||||
"webencodings 0.5.1 py313haa95532_2\n",
|
||||
"werkzeug 3.1.3 pypi_0 pypi\n",
|
||||
"wheel 0.45.1 py313haa95532_0\n",
|
||||
"xz 5.6.4 h4754444_1\n",
|
||||
"yarg 0.1.10 pypi_0 pypi\n",
|
||||
"zeromq 4.3.5 hd77b12b_0\n",
|
||||
"zlib 1.2.13 h8cc25b3_1\n",
|
||||
"\n",
|
||||
"Note: you may need to restart the kernel to use updated packages.\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"execution_count": 7
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"ExecuteTime": {
|
||||
"end_time": "2025-08-12T03:35:51.163360Z",
|
||||
"start_time": "2025-08-12T03:35:51.158811Z"
|
||||
}
|
||||
},
|
||||
"cell_type": "code",
|
||||
"source": "pip install pymysql\n",
|
||||
"id": "4aaf7af5d69a8609",
|
||||
"outputs": [
|
||||
{
|
||||
"ename": "SyntaxError",
|
||||
"evalue": "invalid syntax (2596390029.py, line 1)",
|
||||
"output_type": "error",
|
||||
"traceback": [
|
||||
" \u001B[36mCell\u001B[39m\u001B[36m \u001B[39m\u001B[32mIn[8]\u001B[39m\u001B[32m, line 1\u001B[39m\n\u001B[31m \u001B[39m\u001B[31mpip install pymysql\u001B[39m\n ^\n\u001B[31mSyntaxError\u001B[39m\u001B[31m:\u001B[39m invalid syntax\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"execution_count": 8
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"ExecuteTime": {
|
||||
"end_time": "2025-08-12T03:36:15.167968Z",
|
||||
"start_time": "2025-08-12T03:36:12.812321Z"
|
||||
}
|
||||
},
|
||||
"cell_type": "code",
|
||||
"source": "pip install mysql-connector-python",
|
||||
"id": "791da2501423a548",
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Collecting mysql-connector-python\n",
|
||||
" Using cached mysql_connector_python-9.4.0-cp313-cp313-win_amd64.whl.metadata (7.7 kB)\n",
|
||||
"Using cached mysql_connector_python-9.4.0-cp313-cp313-win_amd64.whl (16.4 MB)\n",
|
||||
"Installing collected packages: mysql-connector-python\n",
|
||||
"Successfully installed mysql-connector-python-9.4.0\n",
|
||||
"Note: you may need to restart the kernel to use updated packages.\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"execution_count": 10
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
|
||||
Reference in New Issue
Block a user