Files
F6--/张阳脚本/竞品系统数据导出/好店长.ipynb
T
2026-04-09 10:19:09 +08:00

2748 lines
140 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"cells": [
{
"metadata": {},
"cell_type": "markdown",
"source": "好店长消费流水\n"
},
{
"cell_type": "code",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-08T04:58:09.915448Z",
"start_time": "2025-02-08T03:43:32.154990Z"
}
},
"source": [
"import pandas as pd\n",
"import requests\n",
"import time\n",
"import json\n",
"import math\n",
"import xlrd\n",
"from pprint import pprint\n",
"from tqdm import tqdm\n",
"\n",
"headers = {\n",
" 'authority': 'api.365hdz.com',\n",
" 'method': 'POST',\n",
" 'path': '/identity/hdz/income/data.js',\n",
" 'scheme': 'https',\n",
" 'accept': 'application/json, text/javascript, */*; q=0.01',\n",
" 'accept-encoding': 'gzip, deflate, br, zstd',\n",
" 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',\n",
" # 'authorization': 'bearer f7bf919e-1bec-4244-86b9-0dd2b6942162',\n",
" 'clienttype': 'GOOD_MANAGER_PRO',\n",
" 'content-length': '245',\n",
" 'content-type': 'application/x-www-form-urlencoded; charset=UTF-8',\n",
" 'origin': 'https://vip.365hdz.com',\n",
" 'priority': 'u=1, i',\n",
" 'referer': 'https://vip.365hdz.com/',\n",
" 'sec-ch-ua': '\"Chromium\";v=\"130\", \"Microsoft Edge\";v=\"130\", \"Not?A_Brand\";v=\"99\"',\n",
" 'sec-ch-ua-mobile': '?0',\n",
" 'sec-ch-ua-platform': '\"Windows\"',\n",
" 'sec-fetch-dest': 'empty',\n",
" 'sec-fetch-mode': 'cors',\n",
" 'sec-fetch-site': 'same-site',\n",
" 'storeid': 'c1a6a754864d449fb03fe913f41b8f5e', # 修改\n",
" 'storename': '%E4%B8%8B%E5%A1%98%E8%80%81%E5%85%B5%E6%B1%BD%E8%BD%A6%E6%9C%8D%E5%8A%A1%E4%B8%AD%E5%BF%83',\n",
" # 修改,注意storename为店铺名称,登录失败试一下手动转码\n",
" 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0',\n",
" 'x-client-id': 'HDZ_PRO_PC'\n",
"}\n",
"\n",
"# 创建一个空的DataFrame\n",
"all_data = pd.DataFrame()\n",
"start = 13770\n",
"page = 1530\n",
"for i in tqdm(range(3008, 6926)):\n",
" json1 = {\n",
" 'draw': 25,\n",
" 'start': start,\n",
" 'length': 9,\n",
" 'desc': 'false',\n",
" 'page': page,\n",
" 'size': 9,\n",
" 'sourceHdzId': '59dd3d9f68344b9ebaf4e306ad1816e9', # 修改\n",
" 'paymentType': '',\n",
" 'midDate': '2009-01-01 00:00:00',\n",
" 'endDate': '2024-12-27 23:59:59',\n",
" 'sourceType': '',\n",
" 'customerName': '',\n",
" 'customerPhone': '',\n",
" 'customerLicensePlate': '',\n",
" 'sourceName': ''\n",
" }\n",
" url = 'https://api.365hdz.com/identity/hdz/income/data.js'\n",
" res1 = requests.post(url, headers=headers, data=json1)\n",
" strele1 = res1.json()\n",
" start = start + 9\n",
" page = page + 1\n",
" for a in range(0, 9):\n",
" data_list = [strele1['data'][a]]\n",
" df_new1 = pd.DataFrame(data_list)\n",
" # 将当前接口的数据添加到总数据中\n",
" all_data = all_data._append(df_new1, ignore_index=True)\n",
" # print(i)\n",
" time.sleep(1)\n",
"all_data.to_excel(r'D:\\Idea Project\\F6+宜搭+其它(1)\\new\\文件输出\\好店长消费流水1-15212771219.xlsx')\n",
"\n",
"# all_data.to_excel(r'C:\\Users\\admin\\Downloads\\好店长消费流水,{}.xlsx'.format(page))\n",
"\n"
],
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
" 66%|██████▌ | 2592/3918 [1:14:37<38:10, 1.73s/it]\n"
]
},
{
"ename": "IndexError",
"evalue": "list index out of range",
"output_type": "error",
"traceback": [
"\u001B[1;31m---------------------------------------------------------------------------\u001B[0m",
"\u001B[1;31mIndexError\u001B[0m Traceback (most recent call last)",
"Cell \u001B[1;32mIn[11], line 64\u001B[0m\n\u001B[0;32m 62\u001B[0m page \u001B[38;5;241m=\u001B[39m page \u001B[38;5;241m+\u001B[39m \u001B[38;5;241m1\u001B[39m\n\u001B[0;32m 63\u001B[0m \u001B[38;5;28;01mfor\u001B[39;00m a \u001B[38;5;129;01min\u001B[39;00m \u001B[38;5;28mrange\u001B[39m(\u001B[38;5;241m0\u001B[39m,\u001B[38;5;241m9\u001B[39m):\n\u001B[1;32m---> 64\u001B[0m data_list \u001B[38;5;241m=\u001B[39m [strele1[\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mdata\u001B[39m\u001B[38;5;124m'\u001B[39m][a]]\n\u001B[0;32m 65\u001B[0m df_new1 \u001B[38;5;241m=\u001B[39m pd\u001B[38;5;241m.\u001B[39mDataFrame(data_list)\n\u001B[0;32m 66\u001B[0m \u001B[38;5;66;03m# 将当前接口的数据添加到总数据中\u001B[39;00m\n",
"\u001B[1;31mIndexError\u001B[0m: list index out of range"
]
}
],
"execution_count": 11
},
{
"cell_type": "code",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-08T05:31:46.776813Z",
"start_time": "2025-02-08T05:31:31.723504Z"
}
},
"source": "all_data.to_excel(r'D:\\Idea Project\\F6+宜搭+其它(1)\\new\\文件输出\\好店长消费流水2-15212771219.xlsx')",
"outputs": [],
"execution_count": 12
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>createDateTime</th>\n",
" <th>updateDateTime</th>\n",
" <th>customerLicensePlate</th>\n",
" <th>customerName</th>\n",
" <th>customerPhone</th>\n",
" <th>isMember</th>\n",
" <th>paymentAmount</th>\n",
" <th>paymentType</th>\n",
" <th>salesChannels</th>\n",
" <th>...</th>\n",
" <th>sourceRecordId</th>\n",
" <th>deductionAmount</th>\n",
" <th>totalAmount</th>\n",
" <th>couponId</th>\n",
" <th>memberId</th>\n",
" <th>mallOrderId</th>\n",
" <th>couponName</th>\n",
" <th>operatorName</th>\n",
" <th>sourceSerialNumber</th>\n",
" <th>licensePlateImage</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>5975253</td>\n",
" <td>2023-12-20 11:42:43</td>\n",
" <td>2023-08-29 16:12:50</td>\n",
" <td>皖BSQ608</td>\n",
" <td>安徽紫照建筑节能装饰股份有限公司</td>\n",
" <td>13855383788</td>\n",
" <td>True</td>\n",
" <td>820.0</td>\n",
" <td>WECHAT_PAY</td>\n",
" <td>STORE</td>\n",
" <td>...</td>\n",
" <td>eef81256760343f6b567616ea2edd694</td>\n",
" <td>0.0</td>\n",
" <td>820.0</td>\n",
" <td>None</td>\n",
" <td>742c26f8a61041efb5ccdbfd13d37506</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>滕栋银</td>\n",
" <td>GD20230829161250148WD2W</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>5975226</td>\n",
" <td>2023-12-20 11:36:39</td>\n",
" <td>2023-12-20 11:36:39</td>\n",
" <td>皖BX5331</td>\n",
" <td>黄祥阳</td>\n",
" <td>18949537203</td>\n",
" <td>True</td>\n",
" <td>13600.0</td>\n",
" <td>WECHAT_PAY</td>\n",
" <td>STORE</td>\n",
" <td>...</td>\n",
" <td>31f08ba597954cbebd404696abf6ad24</td>\n",
" <td>0.0</td>\n",
" <td>13600.0</td>\n",
" <td>None</td>\n",
" <td>1bbc937b91da474bb24a177def377608</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>滕栋银</td>\n",
" <td>GD20231028134336297Q62P</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>5975221</td>\n",
" <td>2023-12-20 11:36:13</td>\n",
" <td>2023-12-20 11:36:13</td>\n",
" <td>皖BHR128</td>\n",
" <td>许</td>\n",
" <td>13515538033</td>\n",
" <td>True</td>\n",
" <td>2400.0</td>\n",
" <td>WECHAT_PAY</td>\n",
" <td>STORE</td>\n",
" <td>...</td>\n",
" <td>fcf165dfb8444eca88c7d933f0fff755</td>\n",
" <td>0.0</td>\n",
" <td>2400.0</td>\n",
" <td>None</td>\n",
" <td>309819bfa2454730b77e9e25c088c78e</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>滕栋银</td>\n",
" <td>GD20231202143857684XMMD</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>5975219</td>\n",
" <td>2023-12-20 11:35:54</td>\n",
" <td>2023-12-20 11:35:54</td>\n",
" <td>沪BFX298</td>\n",
" <td>孙总</td>\n",
" <td>18817929291</td>\n",
" <td>True</td>\n",
" <td>260.0</td>\n",
" <td>WECHAT_PAY</td>\n",
" <td>STORE</td>\n",
" <td>...</td>\n",
" <td>44d7fb59bd114b1897aac3e196985b9d</td>\n",
" <td>0.0</td>\n",
" <td>260.0</td>\n",
" <td>None</td>\n",
" <td>e6beeb9605054648a19c873a714c5f13</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>滕栋银</td>\n",
" <td>GD20231206131413655UOCK</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5975218</td>\n",
" <td>2023-12-20 11:35:34</td>\n",
" <td>2023-12-20 11:35:34</td>\n",
" <td>皖BV6290</td>\n",
" <td>海军</td>\n",
" <td>18534558647</td>\n",
" <td>True</td>\n",
" <td>2240.0</td>\n",
" <td>WECHAT_PAY</td>\n",
" <td>STORE</td>\n",
" <td>...</td>\n",
" <td>60b2dc25b75140f3a306c17bcc6fd693</td>\n",
" <td>0.0</td>\n",
" <td>2240.0</td>\n",
" <td>None</td>\n",
" <td>5a63766fe94843bf88e0e8daec9ea72d</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>滕栋银</td>\n",
" <td>GD20231211143947654YA4Z</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8614</th>\n",
" <td>986829</td>\n",
" <td>2019-05-15 18:20:48</td>\n",
" <td>2019-05-15 18:20:48</td>\n",
" <td>皖BR618H</td>\n",
" <td>现代</td>\n",
" <td>13000000000</td>\n",
" <td>True</td>\n",
" <td>320.0</td>\n",
" <td>WECHAT_PAY</td>\n",
" <td>STORE</td>\n",
" <td>...</td>\n",
" <td>b0f917d3c2124a26ad32aca4a2953e30</td>\n",
" <td>0.0</td>\n",
" <td>320.0</td>\n",
" <td>None</td>\n",
" <td>ef63008c44494fbdbbfb666404d28b0a</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>滕栋银</td>\n",
" <td>GD20190515182001711TRVB</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8615</th>\n",
" <td>986772</td>\n",
" <td>2019-05-15 18:03:22</td>\n",
" <td>2019-05-15 18:03:22</td>\n",
" <td>浙A9FZ91</td>\n",
" <td>福特</td>\n",
" <td>15755381982</td>\n",
" <td>True</td>\n",
" <td>510.0</td>\n",
" <td>WECHAT_PAY</td>\n",
" <td>STORE</td>\n",
" <td>...</td>\n",
" <td>787cb784dea341dab26da58908726478</td>\n",
" <td>0.0</td>\n",
" <td>510.0</td>\n",
" <td>None</td>\n",
" <td>713a54ab2c184ee9a68a965defdf149b</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>滕栋银</td>\n",
" <td>GD20190515180205496ULJE</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8616</th>\n",
" <td>986711</td>\n",
" <td>2019-05-15 17:46:36</td>\n",
" <td>2019-05-15 17:46:36</td>\n",
" <td>皖BSX756</td>\n",
" <td>陈</td>\n",
" <td>15255313882</td>\n",
" <td>True</td>\n",
" <td>180.0</td>\n",
" <td>WECHAT_PAY</td>\n",
" <td>STORE</td>\n",
" <td>...</td>\n",
" <td>7992bb444d904c9485b99f3e1cac8f68</td>\n",
" <td>0.0</td>\n",
" <td>180.0</td>\n",
" <td>None</td>\n",
" <td>a847f1fc5e714789a07864f2ff967609</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>滕栋银</td>\n",
" <td>GD20190515173912365FWHB</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8617</th>\n",
" <td>985366</td>\n",
" <td>2019-05-15 10:37:42</td>\n",
" <td>2019-05-15 10:37:42</td>\n",
" <td>皖BW817Y</td>\n",
" <td>叶先生</td>\n",
" <td>13955375398</td>\n",
" <td>True</td>\n",
" <td>260.0</td>\n",
" <td>WECHAT_PAY</td>\n",
" <td>STORE</td>\n",
" <td>...</td>\n",
" <td>c59a4902cbdd441dafcabc64d92996e0</td>\n",
" <td>0.0</td>\n",
" <td>260.0</td>\n",
" <td>None</td>\n",
" <td>30ec6199c2d74085a6e7a79a0e74f372</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>滕栋银</td>\n",
" <td>GD20190515103724308BNVA</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8618</th>\n",
" <td>988962</td>\n",
" <td>2019-05-04 14:27:59</td>\n",
" <td>2019-05-04 14:27:59</td>\n",
" <td>皖BFW586</td>\n",
" <td>马自达</td>\n",
" <td>18755327782</td>\n",
" <td>True</td>\n",
" <td>350.0</td>\n",
" <td>WECHAT_PAY</td>\n",
" <td>STORE</td>\n",
" <td>...</td>\n",
" <td>b120f86bc28d4c679e02221e83f4eb24</td>\n",
" <td>0.0</td>\n",
" <td>350.0</td>\n",
" <td>None</td>\n",
" <td>a1b11bcffb9c48d396b84024db5dbba1</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>滕栋银</td>\n",
" <td>GD20190516142720311MXJC</td>\n",
" <td>None</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>8619 rows × 27 columns</p>\n",
"</div>"
],
"text/plain": [
" id createDateTime updateDateTime customerLicensePlate \n",
"0 5975253 2023-12-20 11:42:43 2023-08-29 16:12:50 皖BSQ608 \\\n",
"1 5975226 2023-12-20 11:36:39 2023-12-20 11:36:39 皖BX5331 \n",
"2 5975221 2023-12-20 11:36:13 2023-12-20 11:36:13 皖BHR128 \n",
"3 5975219 2023-12-20 11:35:54 2023-12-20 11:35:54 沪BFX298 \n",
"4 5975218 2023-12-20 11:35:34 2023-12-20 11:35:34 皖BV6290 \n",
"... ... ... ... ... \n",
"8614 986829 2019-05-15 18:20:48 2019-05-15 18:20:48 皖BR618H \n",
"8615 986772 2019-05-15 18:03:22 2019-05-15 18:03:22 浙A9FZ91 \n",
"8616 986711 2019-05-15 17:46:36 2019-05-15 17:46:36 皖BSX756 \n",
"8617 985366 2019-05-15 10:37:42 2019-05-15 10:37:42 皖BW817Y \n",
"8618 988962 2019-05-04 14:27:59 2019-05-04 14:27:59 皖BFW586 \n",
"\n",
" customerName customerPhone isMember paymentAmount paymentType \n",
"0 安徽紫照建筑节能装饰股份有限公司 13855383788 True 820.0 WECHAT_PAY \\\n",
"1 黄祥阳 18949537203 True 13600.0 WECHAT_PAY \n",
"2 许 13515538033 True 2400.0 WECHAT_PAY \n",
"3 孙总 18817929291 True 260.0 WECHAT_PAY \n",
"4 海军 18534558647 True 2240.0 WECHAT_PAY \n",
"... ... ... ... ... ... \n",
"8614 现代 13000000000 True 320.0 WECHAT_PAY \n",
"8615 福特 15755381982 True 510.0 WECHAT_PAY \n",
"8616 陈 15255313882 True 180.0 WECHAT_PAY \n",
"8617 叶先生 13955375398 True 260.0 WECHAT_PAY \n",
"8618 马自达 18755327782 True 350.0 WECHAT_PAY \n",
"\n",
" salesChannels ... sourceRecordId deductionAmount \n",
"0 STORE ... eef81256760343f6b567616ea2edd694 0.0 \\\n",
"1 STORE ... 31f08ba597954cbebd404696abf6ad24 0.0 \n",
"2 STORE ... fcf165dfb8444eca88c7d933f0fff755 0.0 \n",
"3 STORE ... 44d7fb59bd114b1897aac3e196985b9d 0.0 \n",
"4 STORE ... 60b2dc25b75140f3a306c17bcc6fd693 0.0 \n",
"... ... ... ... ... \n",
"8614 STORE ... b0f917d3c2124a26ad32aca4a2953e30 0.0 \n",
"8615 STORE ... 787cb784dea341dab26da58908726478 0.0 \n",
"8616 STORE ... 7992bb444d904c9485b99f3e1cac8f68 0.0 \n",
"8617 STORE ... c59a4902cbdd441dafcabc64d92996e0 0.0 \n",
"8618 STORE ... b120f86bc28d4c679e02221e83f4eb24 0.0 \n",
"\n",
" totalAmount couponId memberId mallOrderId \n",
"0 820.0 None 742c26f8a61041efb5ccdbfd13d37506 None \\\n",
"1 13600.0 None 1bbc937b91da474bb24a177def377608 None \n",
"2 2400.0 None 309819bfa2454730b77e9e25c088c78e None \n",
"3 260.0 None e6beeb9605054648a19c873a714c5f13 None \n",
"4 2240.0 None 5a63766fe94843bf88e0e8daec9ea72d None \n",
"... ... ... ... ... \n",
"8614 320.0 None ef63008c44494fbdbbfb666404d28b0a None \n",
"8615 510.0 None 713a54ab2c184ee9a68a965defdf149b None \n",
"8616 180.0 None a847f1fc5e714789a07864f2ff967609 None \n",
"8617 260.0 None 30ec6199c2d74085a6e7a79a0e74f372 None \n",
"8618 350.0 None a1b11bcffb9c48d396b84024db5dbba1 None \n",
"\n",
" couponName operatorName sourceSerialNumber licensePlateImage \n",
"0 None 滕栋银 GD20230829161250148WD2W None \n",
"1 None 滕栋银 GD20231028134336297Q62P None \n",
"2 None 滕栋银 GD20231202143857684XMMD None \n",
"3 None 滕栋银 GD20231206131413655UOCK None \n",
"4 None 滕栋银 GD20231211143947654YA4Z None \n",
"... ... ... ... ... \n",
"8614 None 滕栋银 GD20190515182001711TRVB None \n",
"8615 None 滕栋银 GD20190515180205496ULJE None \n",
"8616 None 滕栋银 GD20190515173912365FWHB None \n",
"8617 None 滕栋银 GD20190515103724308BNVA None \n",
"8618 None 滕栋银 GD20190516142720311MXJC None \n",
"\n",
"[8619 rows x 27 columns]"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"all_data"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"<ipython-input-20-a6ec365d04f4>:1: UserWarning: Pandas requires version '1.4.3' or newer of 'xlsxwriter' (version '1.3.8' currently installed).\n",
" all_data.to_excel(r'C:\\Users\\admin\\Downloads\\好店长消费流水.xlsx')\n"
]
}
],
"source": [
"all_data.to_excel(r'C:\\Users\\admin\\Downloads\\好店长消费流水.xlsx')"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"ename": "KeyError",
"evalue": "'data'",
"output_type": "error",
"traceback": [
"\u001B[1;31m---------------------------------------------------------------------------\u001B[0m",
"\u001B[1;31mKeyError\u001B[0m Traceback (most recent call last)",
"Cell \u001B[1;32mIn[11], line 1\u001B[0m\n\u001B[1;32m----> 1\u001B[0m strele1[\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mdata\u001B[39m\u001B[38;5;124m'\u001B[39m][a]\n",
"\u001B[1;31mKeyError\u001B[0m: 'data'"
]
}
],
"source": [
"strele1['data'][a]"
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "好店长剩余套餐\n"
},
{
"cell_type": "code",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-07T08:34:16.256019Z",
"start_time": "2025-02-07T08:34:09.430892Z"
}
},
"source": [
"import pandas as pd\n",
"import requests\n",
"import json\n",
"import math\n",
"import xlrd\n",
"from pprint import pprint\n",
"from tqdm import tqdm\n",
"\n",
"headers = {\n",
" 'Accept': 'application/json, text/javascript, */*; q=0.01',\n",
" 'Accept-Encoding': 'gzip, deflate, br, zstd',\n",
" 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',\n",
" 'Authorization': 'bearer 971e3757-cecd-47d1-8246-77274fbf3e0e', # 修改\n",
" 'Clienttype': 'GOOD_MANAGER_PRO',\n",
" 'Content-Length': '199',\n",
" 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',\n",
" 'Origin': 'https://vip.365hdz.com',\n",
" 'Priority': 'u=1, i',\n",
" 'Referer': 'https://vip.365hdz.com/',\n",
" 'Sec-Ch-Ua': '\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Microsoft Edge\";v=\"132\"',\n",
" 'Sec-Ch-Ua-Mobile': '?0',\n",
" 'Sec-Ch-Ua-Platform': '\"Windows\"',\n",
" 'Sec-Fetch-Dest': 'empty',\n",
" 'Sec-Fetch-Mode': 'cors',\n",
" 'Sec-Fetch-Site': 'same-site',\n",
" 'Storeid': 'c1a6a754864d449fb03fe913f41b8f5e', # 修改\n",
" 'Storename': '%E4%B8%8B%E5%A1%98%E8%80%81%E5%85%B5%E6%B1%BD%E8%BD%A6%E6%9C%8D%E5%8A%A1%E4%B8%AD%E5%BF%83', # 修改\n",
" 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36 Edg/132.0.0.0',\n",
" 'X-Client-Id': 'HDZ_PRO_PC'\n",
"}\n",
"\n",
"# 创建一个空的DataFrame\n",
"all_data = pd.DataFrame()\n",
"start = 0\n",
"page = 0\n",
"for i in tqdm(range(0, 15)):\n",
" json1 = {\n",
" 'draw': 11,\n",
" 'start': start,\n",
" 'length': 11,\n",
" 'desc': 'false',\n",
" 'page': page,\n",
" 'size': 11,\n",
" 'sourceHdzId': 'c1a6a754864d449fb03fe913f41b8f5e',\n",
" 'paymentType': '',\n",
" 'midDate': '2009-01-01 00:00:00',\n",
" 'endDate': '2024-08-24 23:59:59',\n",
" 'sourceType': '',\n",
" 'customerName': '',\n",
" 'customerPhone': '',\n",
" 'customerLicensePlate': '',\n",
" 'sourceName': ''\n",
" }\n",
" url = 'https://api.365hdz.com/basic/customers/countercardlist/data.js'\n",
" res1 = requests.post(url, headers=headers, data=json1)\n",
" strele1 = res1.json()\n",
" start = start + 11\n",
" page = page + 1\n",
" for a in range(0, 11):\n",
" data_list = [strele1['data'][a]]\n",
" df_new1 = pd.DataFrame(data_list)\n",
" # 将当前接口的数据添加到总数据中\n",
" all_data = all_data._append(df_new1, ignore_index=True)\n",
" # print(i)\n",
"all_data.to_excel(r'D:\\Idea Project\\F6+宜搭+其它(1)\\new\\文件输出\\好店长剩余套餐-15212771219.xlsx')\n",
"\n",
"# all_data.to_excel(r'C:\\Users\\admin\\Downloads\\好店长消费流水,{}.xlsx'.format(page))\n",
"\n"
],
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
" 60%|██████ | 9/15 [00:06<00:04, 1.34it/s]\n"
]
},
{
"ename": "IndexError",
"evalue": "list index out of range",
"output_type": "error",
"traceback": [
"\u001B[1;31m---------------------------------------------------------------------------\u001B[0m",
"\u001B[1;31mIndexError\u001B[0m Traceback (most recent call last)",
"Cell \u001B[1;32mIn[4], line 60\u001B[0m\n\u001B[0;32m 58\u001B[0m page \u001B[38;5;241m=\u001B[39m page \u001B[38;5;241m+\u001B[39m \u001B[38;5;241m1\u001B[39m\n\u001B[0;32m 59\u001B[0m \u001B[38;5;28;01mfor\u001B[39;00m a \u001B[38;5;129;01min\u001B[39;00m \u001B[38;5;28mrange\u001B[39m(\u001B[38;5;241m0\u001B[39m,\u001B[38;5;241m11\u001B[39m):\n\u001B[1;32m---> 60\u001B[0m data_list \u001B[38;5;241m=\u001B[39m [strele1[\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mdata\u001B[39m\u001B[38;5;124m'\u001B[39m][a]]\n\u001B[0;32m 61\u001B[0m df_new1 \u001B[38;5;241m=\u001B[39m pd\u001B[38;5;241m.\u001B[39mDataFrame(data_list)\n\u001B[0;32m 62\u001B[0m \u001B[38;5;66;03m# 将当前接口的数据添加到总数据中\u001B[39;00m\n",
"\u001B[1;31mIndexError\u001B[0m: list index out of range"
]
}
],
"execution_count": 4
},
{
"cell_type": "code",
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-07T08:34:30.411437Z",
"start_time": "2025-02-07T08:34:30.116759Z"
}
},
"source": "all_data.to_excel(r'D:\\Idea Project\\F6+宜搭+其它(1)\\new\\文件输出\\好店长剩余套餐-15212771219.xlsx')",
"outputs": [],
"execution_count": 5
},
{
"cell_type": "code",
"metadata": {
"ExecuteTime": {
"end_time": "2026-03-19T07:25:59.945557200Z",
"start_time": "2026-03-19T07:19:53.045101500Z"
}
},
"source": [
"import pandas as pd\n",
"import requests\n",
"import json\n",
"import math\n",
"import xlrd\n",
"from pprint import pprint\n",
"\n",
"headers = {\n",
" 'accept': 'application/json, text/javascript, */*; q=0.01',\n",
" 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',\n",
" 'authorization': 'bearer 21143f27-ffdc-4727-aae0-ff9b8447f70a',\n",
" 'clienttype': 'GOOD_MANAGER_PRO',\n",
" 'content-type': 'application/x-www-form-urlencoded; charset=UTF-8',\n",
" 'origin': 'https://vip.365hdz.com',\n",
" 'priority': 'u=1, i',\n",
" 'referer': 'https://vip.365hdz.com/',\n",
" 'sec-ch-ua': '\"Chromium\";v=\"146\", \"Not-A.Brand\";v=\"24\", \"Microsoft Edge\";v=\"146\"',\n",
" 'sec-ch-ua-mobile': '?0',\n",
" 'sec-ch-ua-platform': '\"Windows\"',\n",
" 'sec-fetch-dest': 'empty',\n",
" 'sec-fetch-mode': 'cors',\n",
" 'sec-fetch-site': 'same-site',\n",
" 'storeid': '0e9bd7a80f8d4587ab5e01179fcb132a',\n",
" 'storename': '%E5%90%AF%E6%A2%A6%E6%B1%BD%E8%BD%A6%E6%9C%8D%E5%8A%A1%E4%B8%AD%E5%BF%83',\n",
" 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36 Edg/146.0.0.0',\n",
" 'x-client-id': 'HDZ_PRO_PC',\n",
"}\n",
"\n",
"# 创建一个空的DataFrame\n",
"all_data = pd.DataFrame()\n",
"start = 0\n",
"page = 0\n",
"for i in range(0, 958):\n",
" json1 = {\n",
" 'draw': 10,\n",
" 'start': start,\n",
" 'length': 10,\n",
" 'desc': 'false',\n",
" 'page': page,\n",
" 'size': 10,\n",
" 'paymentType': '',\n",
" 'midDate': '2009-01-01 00:00:00',\n",
" 'endDate': '2026-08-24 23:59:59',\n",
" 'sourceType': '',\n",
" 'customerName': '',\n",
" 'customerPhone': '',\n",
" 'customerLicensePlate': '',\n",
" 'sourceName': ''\n",
" }\n",
" url = 'https://api.365hdz.com/basic/customers/countercardlist/data.js'\n",
" res1 = requests.post(url, headers=headers, data=json1)\n",
" strele1 = res1.json()\n",
" page_len = len(strele1['data'])\n",
" start = start + page_len\n",
" page = page + 1\n",
" for a in range(0, page_len):\n",
" data_list = [strele1['data'][a]]\n",
" df_new1 = pd.DataFrame(data_list)\n",
" # 将当前接口的数据添加到总数据中\n",
" all_data = all_data._append(df_new1, ignore_index=True)\n",
" print(i)\n",
"all_data.to_excel(r'D:\\Idea Project\\F6+宜搭+其它(1)\\张阳脚本\\文件输出\\好店长剩余套餐-1.xlsx')\n",
"\n",
"# all_data.to_excel(r'C:\\Users\\admin\\Downloads\\好店长消费流水,{}.xlsx'.format(page))\n",
"\n"
],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0\n",
"1\n",
"2\n",
"3\n",
"4\n",
"5\n",
"6\n",
"7\n",
"8\n",
"9\n",
"10\n",
"11\n",
"12\n",
"13\n",
"14\n",
"15\n",
"16\n",
"17\n",
"18\n",
"19\n",
"20\n",
"21\n",
"22\n",
"23\n",
"24\n",
"25\n",
"26\n",
"27\n",
"28\n",
"29\n",
"30\n",
"31\n",
"32\n",
"33\n",
"34\n",
"35\n",
"36\n",
"37\n",
"38\n",
"39\n",
"40\n",
"41\n",
"42\n",
"43\n",
"44\n",
"45\n",
"46\n",
"47\n",
"48\n",
"49\n",
"50\n",
"51\n",
"52\n",
"53\n",
"54\n",
"55\n",
"56\n",
"57\n",
"58\n",
"59\n",
"60\n",
"61\n",
"62\n",
"63\n",
"64\n",
"65\n",
"66\n",
"67\n",
"68\n",
"69\n",
"70\n",
"71\n",
"72\n",
"73\n",
"74\n",
"75\n",
"76\n",
"77\n",
"78\n",
"79\n",
"80\n",
"81\n",
"82\n",
"83\n",
"84\n",
"85\n",
"86\n",
"87\n",
"88\n",
"89\n",
"90\n",
"91\n",
"92\n",
"93\n",
"94\n",
"95\n",
"96\n",
"97\n",
"98\n",
"99\n",
"100\n",
"101\n",
"102\n",
"103\n",
"104\n",
"105\n",
"106\n",
"107\n",
"108\n",
"109\n",
"110\n",
"111\n",
"112\n",
"113\n",
"114\n",
"115\n",
"116\n",
"117\n",
"118\n",
"119\n",
"120\n",
"121\n",
"122\n",
"123\n",
"124\n",
"125\n",
"126\n",
"127\n",
"128\n",
"129\n",
"130\n",
"131\n",
"132\n",
"133\n",
"134\n",
"135\n",
"136\n",
"137\n",
"138\n",
"139\n",
"140\n",
"141\n",
"142\n",
"143\n",
"144\n",
"145\n",
"146\n",
"147\n",
"148\n",
"149\n",
"150\n",
"151\n",
"152\n",
"153\n",
"154\n",
"155\n",
"156\n",
"157\n",
"158\n",
"159\n",
"160\n",
"161\n",
"162\n",
"163\n",
"164\n",
"165\n",
"166\n",
"167\n",
"168\n",
"169\n",
"170\n",
"171\n",
"172\n",
"173\n",
"174\n",
"175\n",
"176\n",
"177\n",
"178\n",
"179\n",
"180\n",
"181\n",
"182\n",
"183\n",
"184\n",
"185\n",
"186\n",
"187\n",
"188\n",
"189\n",
"190\n",
"191\n",
"192\n",
"193\n",
"194\n",
"195\n",
"196\n",
"197\n",
"198\n",
"199\n",
"200\n",
"201\n",
"202\n",
"203\n",
"204\n",
"205\n",
"206\n",
"207\n",
"208\n",
"209\n",
"210\n",
"211\n",
"212\n",
"213\n",
"214\n",
"215\n",
"216\n",
"217\n",
"218\n",
"219\n",
"220\n",
"221\n",
"222\n",
"223\n",
"224\n",
"225\n",
"226\n",
"227\n",
"228\n",
"229\n",
"230\n",
"231\n",
"232\n",
"233\n",
"234\n",
"235\n",
"236\n",
"237\n",
"238\n",
"239\n",
"240\n",
"241\n",
"242\n",
"243\n",
"244\n",
"245\n",
"246\n",
"247\n",
"248\n",
"249\n",
"250\n",
"251\n",
"252\n",
"253\n",
"254\n",
"255\n",
"256\n",
"257\n",
"258\n",
"259\n",
"260\n",
"261\n",
"262\n",
"263\n",
"264\n",
"265\n",
"266\n",
"267\n",
"268\n",
"269\n",
"270\n",
"271\n",
"272\n",
"273\n",
"274\n",
"275\n",
"276\n",
"277\n",
"278\n",
"279\n",
"280\n",
"281\n",
"282\n",
"283\n",
"284\n",
"285\n",
"286\n",
"287\n",
"288\n",
"289\n",
"290\n",
"291\n",
"292\n",
"293\n",
"294\n",
"295\n",
"296\n",
"297\n",
"298\n",
"299\n",
"300\n",
"301\n",
"302\n",
"303\n",
"304\n",
"305\n",
"306\n",
"307\n",
"308\n",
"309\n",
"310\n",
"311\n",
"312\n",
"313\n",
"314\n",
"315\n",
"316\n",
"317\n",
"318\n",
"319\n",
"320\n",
"321\n",
"322\n",
"323\n",
"324\n",
"325\n",
"326\n",
"327\n",
"328\n",
"329\n",
"330\n",
"331\n",
"332\n",
"333\n",
"334\n",
"335\n",
"336\n",
"337\n",
"338\n",
"339\n",
"340\n",
"341\n",
"342\n",
"343\n",
"344\n",
"345\n",
"346\n",
"347\n",
"348\n",
"349\n",
"350\n",
"351\n",
"352\n",
"353\n",
"354\n",
"355\n",
"356\n",
"357\n",
"358\n",
"359\n",
"360\n",
"361\n",
"362\n",
"363\n",
"364\n",
"365\n",
"366\n",
"367\n",
"368\n",
"369\n",
"370\n",
"371\n",
"372\n",
"373\n",
"374\n",
"375\n",
"376\n",
"377\n",
"378\n",
"379\n",
"380\n"
]
},
{
"ename": "KeyboardInterrupt",
"evalue": "",
"output_type": "error",
"traceback": [
"\u001B[31m---------------------------------------------------------------------------\u001B[39m",
"\u001B[31mKeyboardInterrupt\u001B[39m Traceback (most recent call last)",
"\u001B[36mCell\u001B[39m\u001B[36m \u001B[39m\u001B[32mIn[4]\u001B[39m\u001B[32m, line 51\u001B[39m\n\u001B[32m 34\u001B[39m json1={\n\u001B[32m 35\u001B[39m \u001B[33m'\u001B[39m\u001B[33mdraw\u001B[39m\u001B[33m'\u001B[39m: \u001B[32m11\u001B[39m,\n\u001B[32m 36\u001B[39m \u001B[33m'\u001B[39m\u001B[33mstart\u001B[39m\u001B[33m'\u001B[39m: start,\n\u001B[32m (...)\u001B[39m\u001B[32m 48\u001B[39m \u001B[33m'\u001B[39m\u001B[33msourceName\u001B[39m\u001B[33m'\u001B[39m: \u001B[33m'\u001B[39m\u001B[33m'\u001B[39m\n\u001B[32m 49\u001B[39m }\n\u001B[32m 50\u001B[39m url = \u001B[33m'\u001B[39m\u001B[33mhttps://api.365hdz.com/basic/customers/countercardlist/data.js\u001B[39m\u001B[33m'\u001B[39m\n\u001B[32m---> \u001B[39m\u001B[32m51\u001B[39m res1 = \u001B[43mrequests\u001B[49m\u001B[43m.\u001B[49m\u001B[43mpost\u001B[49m\u001B[43m(\u001B[49m\u001B[43murl\u001B[49m\u001B[43m,\u001B[49m\u001B[43mheaders\u001B[49m\u001B[43m=\u001B[49m\u001B[43mheaders\u001B[49m\u001B[43m,\u001B[49m\u001B[43mdata\u001B[49m\u001B[43m=\u001B[49m\u001B[43mjson1\u001B[49m\u001B[43m)\u001B[49m\n\u001B[32m 52\u001B[39m strele1 = res1.json()\n\u001B[32m 53\u001B[39m page_len = \u001B[38;5;28mlen\u001B[39m(strele1[\u001B[33m'\u001B[39m\u001B[33mdata\u001B[39m\u001B[33m'\u001B[39m])\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\F6+宜搭+其它\\Lib\\site-packages\\requests\\api.py:115\u001B[39m, in \u001B[36mpost\u001B[39m\u001B[34m(url, data, json, **kwargs)\u001B[39m\n\u001B[32m 103\u001B[39m \u001B[38;5;28;01mdef\u001B[39;00m\u001B[38;5;250m \u001B[39m\u001B[34mpost\u001B[39m(url, data=\u001B[38;5;28;01mNone\u001B[39;00m, json=\u001B[38;5;28;01mNone\u001B[39;00m, **kwargs):\n\u001B[32m 104\u001B[39m \u001B[38;5;250m \u001B[39m\u001B[33mr\u001B[39m\u001B[33;03m\"\"\"Sends a POST request.\u001B[39;00m\n\u001B[32m 105\u001B[39m \n\u001B[32m 106\u001B[39m \u001B[33;03m :param url: URL for the new :class:`Request` object.\u001B[39;00m\n\u001B[32m (...)\u001B[39m\u001B[32m 112\u001B[39m \u001B[33;03m :rtype: requests.Response\u001B[39;00m\n\u001B[32m 113\u001B[39m \u001B[33;03m \"\"\"\u001B[39;00m\n\u001B[32m--> \u001B[39m\u001B[32m115\u001B[39m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[43mrequest\u001B[49m\u001B[43m(\u001B[49m\u001B[33;43m\"\u001B[39;49m\u001B[33;43mpost\u001B[39;49m\u001B[33;43m\"\u001B[39;49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43murl\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mdata\u001B[49m\u001B[43m=\u001B[49m\u001B[43mdata\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mjson\u001B[49m\u001B[43m=\u001B[49m\u001B[43mjson\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43m*\u001B[49m\u001B[43m*\u001B[49m\u001B[43mkwargs\u001B[49m\u001B[43m)\u001B[49m\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\F6+宜搭+其它\\Lib\\site-packages\\requests\\api.py:59\u001B[39m, in \u001B[36mrequest\u001B[39m\u001B[34m(method, url, **kwargs)\u001B[39m\n\u001B[32m 55\u001B[39m \u001B[38;5;66;03m# By using the 'with' statement we are sure the session is closed, thus we\u001B[39;00m\n\u001B[32m 56\u001B[39m \u001B[38;5;66;03m# avoid leaving sockets open which can trigger a ResourceWarning in some\u001B[39;00m\n\u001B[32m 57\u001B[39m \u001B[38;5;66;03m# cases, and look like a memory leak in others.\u001B[39;00m\n\u001B[32m 58\u001B[39m \u001B[38;5;28;01mwith\u001B[39;00m sessions.Session() \u001B[38;5;28;01mas\u001B[39;00m session:\n\u001B[32m---> \u001B[39m\u001B[32m59\u001B[39m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[43msession\u001B[49m\u001B[43m.\u001B[49m\u001B[43mrequest\u001B[49m\u001B[43m(\u001B[49m\u001B[43mmethod\u001B[49m\u001B[43m=\u001B[49m\u001B[43mmethod\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43murl\u001B[49m\u001B[43m=\u001B[49m\u001B[43murl\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43m*\u001B[49m\u001B[43m*\u001B[49m\u001B[43mkwargs\u001B[49m\u001B[43m)\u001B[49m\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\F6+宜搭+其它\\Lib\\site-packages\\requests\\sessions.py:589\u001B[39m, in \u001B[36mSession.request\u001B[39m\u001B[34m(self, method, url, params, data, headers, cookies, files, auth, timeout, allow_redirects, proxies, hooks, stream, verify, cert, json)\u001B[39m\n\u001B[32m 584\u001B[39m send_kwargs = {\n\u001B[32m 585\u001B[39m \u001B[33m\"\u001B[39m\u001B[33mtimeout\u001B[39m\u001B[33m\"\u001B[39m: timeout,\n\u001B[32m 586\u001B[39m \u001B[33m\"\u001B[39m\u001B[33mallow_redirects\u001B[39m\u001B[33m\"\u001B[39m: allow_redirects,\n\u001B[32m 587\u001B[39m }\n\u001B[32m 588\u001B[39m send_kwargs.update(settings)\n\u001B[32m--> \u001B[39m\u001B[32m589\u001B[39m resp = \u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43msend\u001B[49m\u001B[43m(\u001B[49m\u001B[43mprep\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43m*\u001B[49m\u001B[43m*\u001B[49m\u001B[43msend_kwargs\u001B[49m\u001B[43m)\u001B[49m\n\u001B[32m 591\u001B[39m \u001B[38;5;28;01mreturn\u001B[39;00m resp\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\F6+宜搭+其它\\Lib\\site-packages\\requests\\sessions.py:703\u001B[39m, in \u001B[36mSession.send\u001B[39m\u001B[34m(self, request, **kwargs)\u001B[39m\n\u001B[32m 700\u001B[39m start = preferred_clock()\n\u001B[32m 702\u001B[39m \u001B[38;5;66;03m# Send the request\u001B[39;00m\n\u001B[32m--> \u001B[39m\u001B[32m703\u001B[39m r = \u001B[43madapter\u001B[49m\u001B[43m.\u001B[49m\u001B[43msend\u001B[49m\u001B[43m(\u001B[49m\u001B[43mrequest\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43m*\u001B[49m\u001B[43m*\u001B[49m\u001B[43mkwargs\u001B[49m\u001B[43m)\u001B[49m\n\u001B[32m 705\u001B[39m \u001B[38;5;66;03m# Total elapsed time of the request (approximately)\u001B[39;00m\n\u001B[32m 706\u001B[39m elapsed = preferred_clock() - start\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\F6+宜搭+其它\\Lib\\site-packages\\requests\\adapters.py:644\u001B[39m, in \u001B[36mHTTPAdapter.send\u001B[39m\u001B[34m(self, request, stream, timeout, verify, cert, proxies)\u001B[39m\n\u001B[32m 641\u001B[39m timeout = TimeoutSauce(connect=timeout, read=timeout)\n\u001B[32m 643\u001B[39m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[32m--> \u001B[39m\u001B[32m644\u001B[39m resp = \u001B[43mconn\u001B[49m\u001B[43m.\u001B[49m\u001B[43murlopen\u001B[49m\u001B[43m(\u001B[49m\n\u001B[32m 645\u001B[39m \u001B[43m \u001B[49m\u001B[43mmethod\u001B[49m\u001B[43m=\u001B[49m\u001B[43mrequest\u001B[49m\u001B[43m.\u001B[49m\u001B[43mmethod\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 646\u001B[39m \u001B[43m \u001B[49m\u001B[43murl\u001B[49m\u001B[43m=\u001B[49m\u001B[43murl\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 647\u001B[39m \u001B[43m \u001B[49m\u001B[43mbody\u001B[49m\u001B[43m=\u001B[49m\u001B[43mrequest\u001B[49m\u001B[43m.\u001B[49m\u001B[43mbody\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 648\u001B[39m \u001B[43m \u001B[49m\u001B[43mheaders\u001B[49m\u001B[43m=\u001B[49m\u001B[43mrequest\u001B[49m\u001B[43m.\u001B[49m\u001B[43mheaders\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 649\u001B[39m \u001B[43m \u001B[49m\u001B[43mredirect\u001B[49m\u001B[43m=\u001B[49m\u001B[38;5;28;43;01mFalse\u001B[39;49;00m\u001B[43m,\u001B[49m\n\u001B[32m 650\u001B[39m \u001B[43m \u001B[49m\u001B[43massert_same_host\u001B[49m\u001B[43m=\u001B[49m\u001B[38;5;28;43;01mFalse\u001B[39;49;00m\u001B[43m,\u001B[49m\n\u001B[32m 651\u001B[39m \u001B[43m \u001B[49m\u001B[43mpreload_content\u001B[49m\u001B[43m=\u001B[49m\u001B[38;5;28;43;01mFalse\u001B[39;49;00m\u001B[43m,\u001B[49m\n\u001B[32m 652\u001B[39m \u001B[43m \u001B[49m\u001B[43mdecode_content\u001B[49m\u001B[43m=\u001B[49m\u001B[38;5;28;43;01mFalse\u001B[39;49;00m\u001B[43m,\u001B[49m\n\u001B[32m 653\u001B[39m \u001B[43m \u001B[49m\u001B[43mretries\u001B[49m\u001B[43m=\u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43mmax_retries\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 654\u001B[39m \u001B[43m \u001B[49m\u001B[43mtimeout\u001B[49m\u001B[43m=\u001B[49m\u001B[43mtimeout\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 655\u001B[39m \u001B[43m \u001B[49m\u001B[43mchunked\u001B[49m\u001B[43m=\u001B[49m\u001B[43mchunked\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 656\u001B[39m \u001B[43m \u001B[49m\u001B[43m)\u001B[49m\n\u001B[32m 658\u001B[39m \u001B[38;5;28;01mexcept\u001B[39;00m (ProtocolError, \u001B[38;5;167;01mOSError\u001B[39;00m) \u001B[38;5;28;01mas\u001B[39;00m err:\n\u001B[32m 659\u001B[39m \u001B[38;5;28;01mraise\u001B[39;00m \u001B[38;5;167;01mConnectionError\u001B[39;00m(err, request=request)\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\F6+宜搭+其它\\Lib\\site-packages\\urllib3\\connectionpool.py:787\u001B[39m, in \u001B[36mHTTPConnectionPool.urlopen\u001B[39m\u001B[34m(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, preload_content, decode_content, **response_kw)\u001B[39m\n\u001B[32m 784\u001B[39m response_conn = conn \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m release_conn \u001B[38;5;28;01melse\u001B[39;00m \u001B[38;5;28;01mNone\u001B[39;00m\n\u001B[32m 786\u001B[39m \u001B[38;5;66;03m# Make the request on the HTTPConnection object\u001B[39;00m\n\u001B[32m--> \u001B[39m\u001B[32m787\u001B[39m response = \u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43m_make_request\u001B[49m\u001B[43m(\u001B[49m\n\u001B[32m 788\u001B[39m \u001B[43m \u001B[49m\u001B[43mconn\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 789\u001B[39m \u001B[43m \u001B[49m\u001B[43mmethod\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 790\u001B[39m \u001B[43m \u001B[49m\u001B[43murl\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 791\u001B[39m \u001B[43m \u001B[49m\u001B[43mtimeout\u001B[49m\u001B[43m=\u001B[49m\u001B[43mtimeout_obj\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 792\u001B[39m \u001B[43m \u001B[49m\u001B[43mbody\u001B[49m\u001B[43m=\u001B[49m\u001B[43mbody\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 793\u001B[39m \u001B[43m \u001B[49m\u001B[43mheaders\u001B[49m\u001B[43m=\u001B[49m\u001B[43mheaders\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 794\u001B[39m \u001B[43m \u001B[49m\u001B[43mchunked\u001B[49m\u001B[43m=\u001B[49m\u001B[43mchunked\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 795\u001B[39m \u001B[43m \u001B[49m\u001B[43mretries\u001B[49m\u001B[43m=\u001B[49m\u001B[43mretries\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 796\u001B[39m \u001B[43m \u001B[49m\u001B[43mresponse_conn\u001B[49m\u001B[43m=\u001B[49m\u001B[43mresponse_conn\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 797\u001B[39m \u001B[43m \u001B[49m\u001B[43mpreload_content\u001B[49m\u001B[43m=\u001B[49m\u001B[43mpreload_content\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 798\u001B[39m \u001B[43m \u001B[49m\u001B[43mdecode_content\u001B[49m\u001B[43m=\u001B[49m\u001B[43mdecode_content\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 799\u001B[39m \u001B[43m \u001B[49m\u001B[43m*\u001B[49m\u001B[43m*\u001B[49m\u001B[43mresponse_kw\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 800\u001B[39m \u001B[43m\u001B[49m\u001B[43m)\u001B[49m\n\u001B[32m 802\u001B[39m \u001B[38;5;66;03m# Everything went great!\u001B[39;00m\n\u001B[32m 803\u001B[39m clean_exit = \u001B[38;5;28;01mTrue\u001B[39;00m\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\F6+宜搭+其它\\Lib\\site-packages\\urllib3\\connectionpool.py:534\u001B[39m, in \u001B[36mHTTPConnectionPool._make_request\u001B[39m\u001B[34m(self, conn, method, url, body, headers, retries, timeout, chunked, response_conn, preload_content, decode_content, enforce_content_length)\u001B[39m\n\u001B[32m 532\u001B[39m \u001B[38;5;66;03m# Receive the response from the server\u001B[39;00m\n\u001B[32m 533\u001B[39m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[32m--> \u001B[39m\u001B[32m534\u001B[39m response = \u001B[43mconn\u001B[49m\u001B[43m.\u001B[49m\u001B[43mgetresponse\u001B[49m\u001B[43m(\u001B[49m\u001B[43m)\u001B[49m\n\u001B[32m 535\u001B[39m \u001B[38;5;28;01mexcept\u001B[39;00m (BaseSSLError, \u001B[38;5;167;01mOSError\u001B[39;00m) \u001B[38;5;28;01mas\u001B[39;00m e:\n\u001B[32m 536\u001B[39m \u001B[38;5;28mself\u001B[39m._raise_timeout(err=e, url=url, timeout_value=read_timeout)\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\F6+宜搭+其它\\Lib\\site-packages\\urllib3\\connection.py:571\u001B[39m, in \u001B[36mHTTPConnection.getresponse\u001B[39m\u001B[34m(self)\u001B[39m\n\u001B[32m 568\u001B[39m _shutdown = \u001B[38;5;28mgetattr\u001B[39m(\u001B[38;5;28mself\u001B[39m.sock, \u001B[33m\"\u001B[39m\u001B[33mshutdown\u001B[39m\u001B[33m\"\u001B[39m, \u001B[38;5;28;01mNone\u001B[39;00m)\n\u001B[32m 570\u001B[39m \u001B[38;5;66;03m# Get the response from http.client.HTTPConnection\u001B[39;00m\n\u001B[32m--> \u001B[39m\u001B[32m571\u001B[39m httplib_response = \u001B[38;5;28;43msuper\u001B[39;49m\u001B[43m(\u001B[49m\u001B[43m)\u001B[49m\u001B[43m.\u001B[49m\u001B[43mgetresponse\u001B[49m\u001B[43m(\u001B[49m\u001B[43m)\u001B[49m\n\u001B[32m 573\u001B[39m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[32m 574\u001B[39m assert_header_parsing(httplib_response.msg)\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\F6+宜搭+其它\\Lib\\http\\client.py:1450\u001B[39m, in \u001B[36mHTTPConnection.getresponse\u001B[39m\u001B[34m(self)\u001B[39m\n\u001B[32m 1448\u001B[39m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[32m 1449\u001B[39m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[32m-> \u001B[39m\u001B[32m1450\u001B[39m \u001B[43mresponse\u001B[49m\u001B[43m.\u001B[49m\u001B[43mbegin\u001B[49m\u001B[43m(\u001B[49m\u001B[43m)\u001B[49m\n\u001B[32m 1451\u001B[39m \u001B[38;5;28;01mexcept\u001B[39;00m \u001B[38;5;167;01mConnectionError\u001B[39;00m:\n\u001B[32m 1452\u001B[39m \u001B[38;5;28mself\u001B[39m.close()\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\F6+宜搭+其它\\Lib\\http\\client.py:336\u001B[39m, in \u001B[36mHTTPResponse.begin\u001B[39m\u001B[34m(self)\u001B[39m\n\u001B[32m 334\u001B[39m \u001B[38;5;66;03m# read until we get a non-100 response\u001B[39;00m\n\u001B[32m 335\u001B[39m \u001B[38;5;28;01mwhile\u001B[39;00m \u001B[38;5;28;01mTrue\u001B[39;00m:\n\u001B[32m--> \u001B[39m\u001B[32m336\u001B[39m version, status, reason = \u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43m_read_status\u001B[49m\u001B[43m(\u001B[49m\u001B[43m)\u001B[49m\n\u001B[32m 337\u001B[39m \u001B[38;5;28;01mif\u001B[39;00m status != CONTINUE:\n\u001B[32m 338\u001B[39m \u001B[38;5;28;01mbreak\u001B[39;00m\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\F6+宜搭+其它\\Lib\\http\\client.py:297\u001B[39m, in \u001B[36mHTTPResponse._read_status\u001B[39m\u001B[34m(self)\u001B[39m\n\u001B[32m 296\u001B[39m \u001B[38;5;28;01mdef\u001B[39;00m\u001B[38;5;250m \u001B[39m\u001B[34m_read_status\u001B[39m(\u001B[38;5;28mself\u001B[39m):\n\u001B[32m--> \u001B[39m\u001B[32m297\u001B[39m line = \u001B[38;5;28mstr\u001B[39m(\u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43mfp\u001B[49m\u001B[43m.\u001B[49m\u001B[43mreadline\u001B[49m\u001B[43m(\u001B[49m\u001B[43m_MAXLINE\u001B[49m\u001B[43m \u001B[49m\u001B[43m+\u001B[49m\u001B[43m \u001B[49m\u001B[32;43m1\u001B[39;49m\u001B[43m)\u001B[49m, \u001B[33m\"\u001B[39m\u001B[33miso-8859-1\u001B[39m\u001B[33m\"\u001B[39m)\n\u001B[32m 298\u001B[39m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;28mlen\u001B[39m(line) > _MAXLINE:\n\u001B[32m 299\u001B[39m \u001B[38;5;28;01mraise\u001B[39;00m LineTooLong(\u001B[33m\"\u001B[39m\u001B[33mstatus line\u001B[39m\u001B[33m\"\u001B[39m)\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\F6+宜搭+其它\\Lib\\socket.py:719\u001B[39m, in \u001B[36mSocketIO.readinto\u001B[39m\u001B[34m(self, b)\u001B[39m\n\u001B[32m 717\u001B[39m \u001B[38;5;28;01mraise\u001B[39;00m \u001B[38;5;167;01mOSError\u001B[39;00m(\u001B[33m\"\u001B[39m\u001B[33mcannot read from timed out object\u001B[39m\u001B[33m\"\u001B[39m)\n\u001B[32m 718\u001B[39m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[32m--> \u001B[39m\u001B[32m719\u001B[39m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43m_sock\u001B[49m\u001B[43m.\u001B[49m\u001B[43mrecv_into\u001B[49m\u001B[43m(\u001B[49m\u001B[43mb\u001B[49m\u001B[43m)\u001B[49m\n\u001B[32m 720\u001B[39m \u001B[38;5;28;01mexcept\u001B[39;00m timeout:\n\u001B[32m 721\u001B[39m \u001B[38;5;28mself\u001B[39m._timeout_occurred = \u001B[38;5;28;01mTrue\u001B[39;00m\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\F6+宜搭+其它\\Lib\\ssl.py:1304\u001B[39m, in \u001B[36mSSLSocket.recv_into\u001B[39m\u001B[34m(self, buffer, nbytes, flags)\u001B[39m\n\u001B[32m 1300\u001B[39m \u001B[38;5;28;01mif\u001B[39;00m flags != \u001B[32m0\u001B[39m:\n\u001B[32m 1301\u001B[39m \u001B[38;5;28;01mraise\u001B[39;00m \u001B[38;5;167;01mValueError\u001B[39;00m(\n\u001B[32m 1302\u001B[39m \u001B[33m\"\u001B[39m\u001B[33mnon-zero flags not allowed in calls to recv_into() on \u001B[39m\u001B[38;5;132;01m%s\u001B[39;00m\u001B[33m\"\u001B[39m %\n\u001B[32m 1303\u001B[39m \u001B[38;5;28mself\u001B[39m.\u001B[34m__class__\u001B[39m)\n\u001B[32m-> \u001B[39m\u001B[32m1304\u001B[39m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43mread\u001B[49m\u001B[43m(\u001B[49m\u001B[43mnbytes\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mbuffer\u001B[49m\u001B[43m)\u001B[49m\n\u001B[32m 1305\u001B[39m \u001B[38;5;28;01melse\u001B[39;00m:\n\u001B[32m 1306\u001B[39m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[38;5;28msuper\u001B[39m().recv_into(buffer, nbytes, flags)\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\F6+宜搭+其它\\Lib\\ssl.py:1138\u001B[39m, in \u001B[36mSSLSocket.read\u001B[39m\u001B[34m(self, len, buffer)\u001B[39m\n\u001B[32m 1136\u001B[39m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[32m 1137\u001B[39m \u001B[38;5;28;01mif\u001B[39;00m buffer \u001B[38;5;129;01mis\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m \u001B[38;5;28;01mNone\u001B[39;00m:\n\u001B[32m-> \u001B[39m\u001B[32m1138\u001B[39m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43m_sslobj\u001B[49m\u001B[43m.\u001B[49m\u001B[43mread\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;28;43mlen\u001B[39;49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mbuffer\u001B[49m\u001B[43m)\u001B[49m\n\u001B[32m 1139\u001B[39m \u001B[38;5;28;01melse\u001B[39;00m:\n\u001B[32m 1140\u001B[39m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[38;5;28mself\u001B[39m._sslobj.read(\u001B[38;5;28mlen\u001B[39m)\n",
"\u001B[31mKeyboardInterrupt\u001B[39m: "
]
}
],
"execution_count": 4
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2026-03-19T07:26:06.751291400Z",
"start_time": "2026-03-19T07:26:06.409769500Z"
}
},
"cell_type": "code",
"source": "all_data.to_excel(r'D:\\Idea Project\\F6+宜搭+其它(1)\\张阳脚本\\文件输出\\好店长剩余套餐-1.xlsx')",
"outputs": [],
"execution_count": 5
},
{
"metadata": {},
"cell_type": "code",
"outputs": [],
"execution_count": null,
"source": ""
},
{
"metadata": {},
"cell_type": "markdown",
"source": "工单信息"
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2026-03-19T08:52:47.412197900Z",
"start_time": "2026-03-19T08:44:31.270149Z"
}
},
"cell_type": "code",
"source": [
"import requests\n",
"import pandas as pd\n",
"from requests.adapters import HTTPAdapter\n",
"from urllib3.util.retry import Retry\n",
"\n",
"def _get_safe_dict(data, key):\n",
" \"\"\"\n",
" 安全地获取嵌套字典。\n",
" 如果 key 不存在,返回 {}。\n",
" 如果 key 存在但值为 None,返回 {}。\n",
" 如果 key 存在且为字典,返回该字典。\n",
" \"\"\"\n",
" val = data.get(key)\n",
" if val is None:\n",
" return {}\n",
" if not isinstance(val, dict):\n",
" # 以防万一数据类型不是字典也不是None,强制转为空字典避免后续报错\n",
" return {}\n",
" return val\n",
"\n",
"def expand_workorder_details(data_list):\n",
" \"\"\"\n",
" 展开工单明细数据,将嵌套的对象展开为独立的列\n",
" \"\"\"\n",
" expanded_data = []\n",
"\n",
" for item in data_list:\n",
" # 基础字段\n",
" base_record = {\n",
" 'id': item.get('id'),\n",
" 'createDateTime': item.get('createDateTime'),\n",
" 'totalAmount': item.get('totalAmount'),\n",
" 'beforeDiscountTotalAmount': item.get('beforeDiscountTotalAmount'),\n",
" 'remark': item.get('remark'),\n",
" 'imgRemark': item.get('imgRemark'),\n",
" 'settlementDate': item.get('settlementDate'),\n",
" 'status': item.get('status'),\n",
" 'receiptVoucherId': item.get('receiptVoucherId'),\n",
" 'licensePlate': item.get('licensePlate'),\n",
" 'storeId': item.get('storeId'),\n",
" 'totalPaidAmount': item.get('totalPaidAmount'),\n",
" 'totalBalanceAmount': item.get('totalBalanceAmount'),\n",
" 'totalGrossProfitAmount': item.get('totalGrossProfitAmount'),\n",
" 'containsPurchaseOrder': item.get('containsPurchaseOrder'),\n",
" 'quotationDateTime': item.get('quotationDateTime'),\n",
" 'sendDateTime': item.get('sendDateTime'),\n",
" 'preDeductAmount': item.get('preDeductAmount'),\n",
" 'maintainOrder': item.get('maintainOrder')\n",
" }\n",
"\n",
" # --- 修复核心:使用 _get_safe_dict 处理所有可能为 None 的嵌套对象 ---\n",
"\n",
" # 操作员信息\n",
" operator_info = _get_safe_dict(item, 'operator')\n",
" base_record.update({\n",
" 'operatorId': operator_info.get('operatorId'),\n",
" 'operatorName': operator_info.get('operatorName'),\n",
" 'operatorStoreId': operator_info.get('operatorStoreId')\n",
" })\n",
"\n",
" # 创建者信息\n",
" creator_info = _get_safe_dict(item, 'creator')\n",
" base_record.update({\n",
" 'creatorId': creator_info.get('operatorId'),\n",
" 'creatorName': creator_info.get('operatorName'),\n",
" 'creatorStoreId': creator_info.get('operatorStoreId')\n",
" })\n",
"\n",
" # 结算会员卡信息 (报错点)\n",
" settlement_member_card = _get_safe_dict(item, 'settlementMemberCard')\n",
" base_record.update({\n",
" 'settlementMemberCardId': settlement_member_card.get('id'),\n",
" 'settlementCardNumber': settlement_member_card.get('cardNumber'),\n",
" 'settlementMemberCardType': settlement_member_card.get('memberCardType')\n",
" })\n",
"\n",
" # 结算客户信息\n",
" settlement_customer = _get_safe_dict(item, 'settlementCustomer')\n",
" base_record.update({\n",
" 'settlementCustomerId': settlement_customer.get('id'),\n",
" 'settlementCustomerName': settlement_customer.get('name'),\n",
" 'settlementContactName': settlement_customer.get('contactName'),\n",
" 'settlementContactTelephone': settlement_customer.get('contactTelephone'),\n",
" 'settlementCustomerCategory': settlement_customer.get('category'),\n",
" 'settlementCumulativeConsumeAmount': settlement_customer.get('cumulativeConsumeAmount'),\n",
" 'settlementCustomerGrade': settlement_customer.get('grade'),\n",
" 'settlementLastConsumeDatetime': settlement_customer.get('lastConsumeDatetime'),\n",
" 'settlementLastIntoStoreDatetime': settlement_customer.get('lastIntoStoreDatetime'),\n",
" 'settlementCustomerCreateDateTime': settlement_customer.get('createDateTime')\n",
" })\n",
"\n",
" # 消费会员卡信息\n",
" consume_member_card = _get_safe_dict(item, 'consumeMemberCard')\n",
" # 处理 consumeMemberCard 内部的 balance 字段,它也可能为 None\n",
" balance_info = _get_safe_dict(consume_member_card, 'balance')\n",
"\n",
" base_record.update({\n",
" 'consumeMemberCardId': consume_member_card.get('id'),\n",
" 'consumeCardNumber': consume_member_card.get('cardNumber'),\n",
" 'consumeMemberCardType': consume_member_card.get('memberCardType'),\n",
" 'consumeCardBalanceStoredAmount': balance_info.get('storedAmount'),\n",
" 'consumeCardBalanceGiftAmount': balance_info.get('giftAmount'),\n",
" 'consumeCardBalanceTotal': balance_info.get('balance'),\n",
" 'consumePreDeductAmount': consume_member_card.get('preDeductAmount'),\n",
" 'consumeAfterPreDeductAmount': consume_member_card.get('afterPreDeductAmount'),\n",
" 'consumeCumulativeStoredAmount': consume_member_card.get('cumulativeStoredAmount'),\n",
" 'consumeCumulativeGiftAmount': consume_member_card.get('cumulativeGiftAmount')\n",
" })\n",
"\n",
" # 消费客户信息\n",
" consume_customer = _get_safe_dict(item, 'consumeCustomer')\n",
" base_record.update({\n",
" 'consumeCustomerId': consume_customer.get('id'),\n",
" 'consumeCustomerName': consume_customer.get('name'),\n",
" 'consumeContactName': consume_customer.get('contactName'),\n",
" 'consumeContactTelephone': consume_customer.get('contactTelephone'),\n",
" 'consumeCustomerCategory': consume_customer.get('category'),\n",
" 'consumeCumulativeConsumeAmount': consume_customer.get('cumulativeConsumeAmount'),\n",
" 'consumeCustomerGrade': consume_customer.get('grade'),\n",
" 'consumeLastConsumeDatetime': consume_customer.get('lastConsumeDatetime'),\n",
" 'consumeLastIntoStoreDatetime': consume_customer.get('lastIntoStoreDatetime'),\n",
" 'consumeCustomerCreateDateTime': consume_customer.get('createDateTime')\n",
" })\n",
"\n",
" # 注册车辆信息\n",
" registered_vehicle = _get_safe_dict(item, 'registeredVehicle')\n",
" vehicle_owner = _get_safe_dict(registered_vehicle, 'vehicleOwner')\n",
" vehicle_info = _get_safe_dict(registered_vehicle, 'vehicle')\n",
" # 车辆牌照信息也可能嵌套且为 None\n",
" license_plate_info = _get_safe_dict(vehicle_info, 'licensePlate')\n",
"\n",
" base_record.update({\n",
" 'registeredVehicleId': registered_vehicle.get('id'),\n",
" 'vehicleOwnerId': vehicle_owner.get('id'),\n",
" 'vehicleOwnerName': vehicle_owner.get('name'),\n",
" 'vehicleOwnerMobilePhone': vehicle_owner.get('mobilePhone'),\n",
" 'vehicleOwnerAddress': vehicle_owner.get('address'),\n",
" 'vehicleOwnerBirthday': vehicle_owner.get('birthday'),\n",
" 'vehicleOwnerGender': vehicle_owner.get('gender'),\n",
" # 修复深层嵌套访问\n",
" 'vehicleLicensePlate': license_plate_info.get('number'),\n",
" 'vehicleBrandCode': vehicle_info.get('brandCode'),\n",
" 'vehicleBrandSeries': vehicle_info.get('brandSeries'),\n",
" 'vehicleColor': vehicle_info.get('color'),\n",
" 'vehicleEngineNumber': vehicle_info.get('engineNumber'),\n",
" 'vehicleFrameNumber': vehicle_info.get('frameNumber'),\n",
" 'vehicleInsuranceDate': vehicle_info.get('insuranceDate'),\n",
" 'vehicleCompulsoryInsuranceDate': vehicle_info.get('compulsoryInsuranceDate'),\n",
" 'vehicleLastMileage': vehicle_info.get('lastMileage'),\n",
" 'vehicleLicenseDate': vehicle_info.get('licenseDate'),\n",
" 'vehicleModel': vehicle_info.get('model'),\n",
" 'vehicleCarBrand': vehicle_info.get('carBrand'),\n",
" 'vehicleManufactureCn': vehicle_info.get('manufactureCn'),\n",
" 'vehicleNameCn': vehicle_info.get('vehicleNameCn'),\n",
" 'vehicleOfYear': vehicle_info.get('vehicleOfYear'),\n",
" 'vehicleMaintenanceMileage': vehicle_info.get('maintenanceMileage'),\n",
" 'vehicleMaintenanceTime': vehicle_info.get('maintenanceTime')\n",
" })\n",
"\n",
" # 工单项目信息\n",
" items = item.get('items')\n",
" # 确保 items 是列表,防止其为 None 导致迭代错误\n",
" if not isinstance(items, list):\n",
" items = []\n",
"\n",
" if items:\n",
" for item_detail in items:\n",
" # 复制基础记录信息\n",
" record = base_record.copy()\n",
"\n",
" # 添加项目详细信息\n",
" record.update({\n",
" 'itemId': item_detail.get('id') if isinstance(item_detail, dict) else None,\n",
" 'itemName': item_detail.get('name') if isinstance(item_detail, dict) else None,\n",
" 'itemRetailPrice': item_detail.get('retailPrice') if isinstance(item_detail, dict) else None,\n",
" 'itemOriginalPrice': item_detail.get('originalPrice') if isinstance(item_detail, dict) else None,\n",
" 'itemCostPrice': item_detail.get('costPrice') if isinstance(item_detail, dict) else None,\n",
" 'itemQuantity': item_detail.get('quantity') if isinstance(item_detail, dict) else None,\n",
" 'itemTotalAmount': item_detail.get('totalAmount') if isinstance(item_detail, dict) else None,\n",
" 'itemBeforeDiscountTotalAmount': item_detail.get('beforeDiscountTotalAmount') if isinstance(item_detail, dict) else None,\n",
" 'itemSaleSourceId': item_detail.get('saleSourceId') if isinstance(item_detail, dict) else None,\n",
" 'itemSaleCategory': item_detail.get('saleCategory') if isinstance(item_detail, dict) else None,\n",
" 'itemFromCounterCard': item_detail.get('fromCounterCard') if isinstance(item_detail, dict) else None,\n",
" 'itemContainsPurchaseOrder': item_detail.get('containsPurchaseOrder') if isinstance(item_detail, dict) else None,\n",
" 'itemCustomizedSupplierId': item_detail.get('customizedSupplierId') if isinstance(item_detail, dict) else None,\n",
" 'itemCustomizedSupplierName': item_detail.get('customizedSupplierName') if isinstance(item_detail, dict) else None,\n",
" 'itemRemark': item_detail.get('remark') if isinstance(item_detail, dict) else None\n",
" })\n",
"\n",
" expanded_data.append(record)\n",
" else:\n",
" # 如果没有项目,则仍保留基础记录\n",
" record = base_record.copy()\n",
" null_item_record = {\n",
" 'itemId': None,\n",
" 'itemName': None,\n",
" 'itemRetailPrice': None,\n",
" 'itemOriginalPrice': None,\n",
" 'itemCostPrice': None,\n",
" 'itemQuantity': None,\n",
" 'itemTotalAmount': None,\n",
" 'itemBeforeDiscountTotalAmount': None,\n",
" 'itemSaleSourceId': None,\n",
" 'itemSaleCategory': None,\n",
" 'itemFromCounterCard': None,\n",
" 'itemContainsPurchaseOrder': None,\n",
" 'itemCustomizedSupplierId': None,\n",
" 'itemCustomizedSupplierName': None,\n",
" 'itemRemark': None\n",
" }\n",
" record.update(null_item_record)\n",
" expanded_data.append(record)\n",
"\n",
" return expanded_data\n",
"\n",
"def fetch_all_workorders():\n",
" \"\"\"\n",
" 获取所有工单数据\n",
" \"\"\"\n",
" # 创建带重试机制的session,提高稳定性\n",
" session = requests.Session()\n",
" retry = Retry(\n",
" total=3,\n",
" backoff_factor=0.5,\n",
" status_forcelist=[429, 500, 502, 503, 504]\n",
" )\n",
" adapter = HTTPAdapter(max_retries=retry)\n",
" session.mount('https://', adapter)\n",
"\n",
" headers = {\n",
" 'accept': 'application/json, text/javascript, */*; q=0.01',\n",
" 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',\n",
" 'authorization': 'bearer 21143f27-ffdc-4727-aae0-ff9b8447f70a',\n",
" 'clienttype': 'GOOD_MANAGER_PRO',\n",
" 'content-type': 'application/x-www-form-urlencoded; charset=UTF-8',\n",
" 'origin': 'https://vip.365hdz.com',\n",
" 'priority': 'u=1, i',\n",
" 'referer': 'https://vip.365hdz.com/',\n",
" 'sec-ch-ua': '\"Chromium\";v=\"146\", \"Not-A.Brand\";v=\"24\", \"Microsoft Edge\";v=\"146\"',\n",
" 'sec-ch-ua-mobile': '?0',\n",
" 'sec-ch-ua-platform': '\"Windows\"',\n",
" 'sec-fetch-dest': 'empty',\n",
" 'sec-fetch-mode': 'cors',\n",
" 'sec-fetch-site': 'same-site',\n",
" 'storeid': '0e9bd7a80f8d4587ab5e01179fcb132a',\n",
" 'storename': '%E5%90%AF%E6%A2%A6%E6%B1%BD%E8%BD%A6%E6%9C%8D%E5%8A%A1%E4%B8%AD%E5%BF%83',\n",
" 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36 Edg/146.0.0.0',\n",
" 'x-client-id': 'HDZ_PRO_PC',\n",
" }\n",
"\n",
" data = {\n",
" 'draw': '3',\n",
" 'start': '0',\n",
" 'length': '12',\n",
" 'desc': 'false',\n",
" 'page': '0',\n",
" 'size': '12',\n",
" 'status': 'COMPLETED',\n",
" 'startDateTime': '',\n",
" 'endDateTime': '',\n",
" 'customerName': '',\n",
" 'customerTelephone': '',\n",
" 'licensePlate': '',\n",
" 'serviceName': '',\n",
" }\n",
"\n",
" all_data = []\n",
" total_records = 6621 # 根据API返回的总数\n",
" page_size = 12\n",
"\n",
" # 计算总页数\n",
" total_pages = (total_records // page_size) + (1 if total_records % page_size > 0 else 0)\n",
"\n",
" print(f\"总共需要获取 {total_pages} 页数据...\")\n",
"\n",
" for i in range(total_pages):\n",
" print(f\"正在获取第 {i+1} 页数据...\")\n",
" data['start'] = str(i * page_size)\n",
" data['page'] = str(i)\n",
"\n",
" try:\n",
" response = session.post('https://api.365hdz.com/basic/workorders/data.js', headers=headers, data=data, timeout=30)\n",
" response.raise_for_status()\n",
"\n",
" json_data = response.json()\n",
" page_data = json_data.get('data', [])\n",
"\n",
" if not page_data:\n",
" print(f\"第 {i+1} 页没有数据,停止获取\")\n",
" break\n",
"\n",
" all_data.extend(page_data)\n",
" print(f\"已获取第 {i+1} 页数据,当前总计 {len(all_data)} 条记录\")\n",
"\n",
" except requests.exceptions.RequestException as e:\n",
" print(f\"获取第 {i+1} 页数据失败: {e}\")\n",
" continue\n",
"\n",
" print(f\"数据获取完成,总计 {len(all_data)} 条记录\")\n",
" return all_data\n",
"\n",
"def main():\n",
" \"\"\"\n",
" 主函数\n",
" \"\"\"\n",
" # 1. 获取原始工单数据\n",
" raw_data = fetch_all_workorders()\n",
"\n",
" if not raw_data:\n",
" print(\"未获取到任何数据,程序结束。\")\n",
" return\n",
"\n",
" # 2. 关键修复:调用展开函数处理原始数据\n",
" # 现在这个函数内部已经处理了 None 值的情况\n",
" expanded_data = expand_workorder_details(raw_data)\n",
"\n",
" # 3. 创建DataFrame\n",
" df = pd.DataFrame(expanded_data)\n",
"\n",
" # 输出到Excel文件\n",
" output_path = \"D:/Idea Project/F6+宜搭+其它(1)/张阳脚本/文件输出/好店长工单列表-展开明细.xlsx\"\n",
"\n",
" # 使用ExcelWriter避免大数据量写入问题\n",
" try:\n",
" with pd.ExcelWriter(output_path, engine='openpyxl') as writer:\n",
" df.to_excel(writer, index=False, sheet_name='工单明细')\n",
" print(f\"数据已保存到: {output_path}\")\n",
" print(f\"共生成 {len(df)} 行数据\")\n",
"\n",
" # 显示前几行数据供查看\n",
" print(\"\\n前5行数据预览:\")\n",
" print(df.head())\n",
"\n",
" # 显示列名\n",
" print(f\"\\n共有 {len(df.columns)} 列:\")\n",
" # 只打印前20个列名,避免输出太长\n",
" print(df.columns.tolist()[:20], \"...\")\n",
" except Exception as e:\n",
" print(f\"保存文件时出错: {e}\")\n",
" # 如果路径有问题,尝试保存到当前目录\n",
" fallback_path = \"workorders_export.xlsx\"\n",
" print(f\"尝试保存到当前目录: {fallback_path}\")\n",
" df.to_excel(fallback_path, index=False)\n",
" print(f\"数据已备用保存到: {fallback_path}\")\n",
"\n",
"if __name__ == \"__main__\":\n",
" main()"
],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"总共需要获取 552 页数据...\n",
"正在获取第 1 页数据...\n",
"已获取第 1 页数据,当前总计 12 条记录\n",
"正在获取第 2 页数据...\n",
"已获取第 2 页数据,当前总计 24 条记录\n",
"正在获取第 3 页数据...\n",
"已获取第 3 页数据,当前总计 36 条记录\n",
"正在获取第 4 页数据...\n",
"已获取第 4 页数据,当前总计 48 条记录\n",
"正在获取第 5 页数据...\n",
"已获取第 5 页数据,当前总计 60 条记录\n",
"正在获取第 6 页数据...\n",
"已获取第 6 页数据,当前总计 72 条记录\n",
"正在获取第 7 页数据...\n",
"已获取第 7 页数据,当前总计 84 条记录\n",
"正在获取第 8 页数据...\n",
"已获取第 8 页数据,当前总计 96 条记录\n",
"正在获取第 9 页数据...\n",
"已获取第 9 页数据,当前总计 108 条记录\n",
"正在获取第 10 页数据...\n",
"已获取第 10 页数据,当前总计 120 条记录\n",
"正在获取第 11 页数据...\n",
"已获取第 11 页数据,当前总计 132 条记录\n",
"正在获取第 12 页数据...\n",
"已获取第 12 页数据,当前总计 144 条记录\n",
"正在获取第 13 页数据...\n",
"已获取第 13 页数据,当前总计 156 条记录\n",
"正在获取第 14 页数据...\n",
"已获取第 14 页数据,当前总计 168 条记录\n",
"正在获取第 15 页数据...\n",
"已获取第 15 页数据,当前总计 180 条记录\n",
"正在获取第 16 页数据...\n",
"已获取第 16 页数据,当前总计 192 条记录\n",
"正在获取第 17 页数据...\n",
"已获取第 17 页数据,当前总计 204 条记录\n",
"正在获取第 18 页数据...\n",
"已获取第 18 页数据,当前总计 216 条记录\n",
"正在获取第 19 页数据...\n",
"已获取第 19 页数据,当前总计 228 条记录\n",
"正在获取第 20 页数据...\n",
"已获取第 20 页数据,当前总计 240 条记录\n",
"正在获取第 21 页数据...\n",
"已获取第 21 页数据,当前总计 252 条记录\n",
"正在获取第 22 页数据...\n",
"已获取第 22 页数据,当前总计 264 条记录\n",
"正在获取第 23 页数据...\n",
"已获取第 23 页数据,当前总计 276 条记录\n",
"正在获取第 24 页数据...\n",
"已获取第 24 页数据,当前总计 288 条记录\n",
"正在获取第 25 页数据...\n",
"已获取第 25 页数据,当前总计 300 条记录\n",
"正在获取第 26 页数据...\n",
"已获取第 26 页数据,当前总计 312 条记录\n",
"正在获取第 27 页数据...\n",
"已获取第 27 页数据,当前总计 324 条记录\n",
"正在获取第 28 页数据...\n",
"已获取第 28 页数据,当前总计 336 条记录\n",
"正在获取第 29 页数据...\n",
"已获取第 29 页数据,当前总计 348 条记录\n",
"正在获取第 30 页数据...\n",
"已获取第 30 页数据,当前总计 360 条记录\n",
"正在获取第 31 页数据...\n",
"已获取第 31 页数据,当前总计 372 条记录\n",
"正在获取第 32 页数据...\n",
"已获取第 32 页数据,当前总计 384 条记录\n",
"正在获取第 33 页数据...\n",
"已获取第 33 页数据,当前总计 396 条记录\n",
"正在获取第 34 页数据...\n",
"已获取第 34 页数据,当前总计 408 条记录\n",
"正在获取第 35 页数据...\n",
"已获取第 35 页数据,当前总计 420 条记录\n",
"正在获取第 36 页数据...\n",
"已获取第 36 页数据,当前总计 432 条记录\n",
"正在获取第 37 页数据...\n",
"已获取第 37 页数据,当前总计 444 条记录\n",
"正在获取第 38 页数据...\n",
"已获取第 38 页数据,当前总计 456 条记录\n",
"正在获取第 39 页数据...\n",
"已获取第 39 页数据,当前总计 468 条记录\n",
"正在获取第 40 页数据...\n",
"已获取第 40 页数据,当前总计 480 条记录\n",
"正在获取第 41 页数据...\n",
"已获取第 41 页数据,当前总计 492 条记录\n",
"正在获取第 42 页数据...\n",
"已获取第 42 页数据,当前总计 504 条记录\n",
"正在获取第 43 页数据...\n",
"已获取第 43 页数据,当前总计 516 条记录\n",
"正在获取第 44 页数据...\n",
"已获取第 44 页数据,当前总计 528 条记录\n",
"正在获取第 45 页数据...\n",
"已获取第 45 页数据,当前总计 540 条记录\n",
"正在获取第 46 页数据...\n",
"已获取第 46 页数据,当前总计 552 条记录\n",
"正在获取第 47 页数据...\n",
"已获取第 47 页数据,当前总计 564 条记录\n",
"正在获取第 48 页数据...\n",
"已获取第 48 页数据,当前总计 576 条记录\n",
"正在获取第 49 页数据...\n",
"已获取第 49 页数据,当前总计 588 条记录\n",
"正在获取第 50 页数据...\n",
"已获取第 50 页数据,当前总计 600 条记录\n",
"正在获取第 51 页数据...\n",
"已获取第 51 页数据,当前总计 612 条记录\n",
"正在获取第 52 页数据...\n",
"已获取第 52 页数据,当前总计 624 条记录\n",
"正在获取第 53 页数据...\n",
"已获取第 53 页数据,当前总计 636 条记录\n",
"正在获取第 54 页数据...\n",
"已获取第 54 页数据,当前总计 648 条记录\n",
"正在获取第 55 页数据...\n",
"已获取第 55 页数据,当前总计 660 条记录\n",
"正在获取第 56 页数据...\n",
"已获取第 56 页数据,当前总计 672 条记录\n",
"正在获取第 57 页数据...\n",
"已获取第 57 页数据,当前总计 684 条记录\n",
"正在获取第 58 页数据...\n",
"已获取第 58 页数据,当前总计 696 条记录\n",
"正在获取第 59 页数据...\n",
"已获取第 59 页数据,当前总计 708 条记录\n",
"正在获取第 60 页数据...\n",
"已获取第 60 页数据,当前总计 720 条记录\n",
"正在获取第 61 页数据...\n",
"已获取第 61 页数据,当前总计 732 条记录\n",
"正在获取第 62 页数据...\n",
"已获取第 62 页数据,当前总计 744 条记录\n",
"正在获取第 63 页数据...\n",
"已获取第 63 页数据,当前总计 756 条记录\n",
"正在获取第 64 页数据...\n",
"已获取第 64 页数据,当前总计 768 条记录\n",
"正在获取第 65 页数据...\n",
"已获取第 65 页数据,当前总计 780 条记录\n",
"正在获取第 66 页数据...\n",
"已获取第 66 页数据,当前总计 792 条记录\n",
"正在获取第 67 页数据...\n",
"已获取第 67 页数据,当前总计 804 条记录\n",
"正在获取第 68 页数据...\n",
"已获取第 68 页数据,当前总计 816 条记录\n",
"正在获取第 69 页数据...\n",
"已获取第 69 页数据,当前总计 828 条记录\n",
"正在获取第 70 页数据...\n",
"已获取第 70 页数据,当前总计 840 条记录\n",
"正在获取第 71 页数据...\n",
"已获取第 71 页数据,当前总计 852 条记录\n",
"正在获取第 72 页数据...\n",
"已获取第 72 页数据,当前总计 864 条记录\n",
"正在获取第 73 页数据...\n",
"已获取第 73 页数据,当前总计 876 条记录\n",
"正在获取第 74 页数据...\n",
"已获取第 74 页数据,当前总计 888 条记录\n",
"正在获取第 75 页数据...\n",
"已获取第 75 页数据,当前总计 900 条记录\n",
"正在获取第 76 页数据...\n",
"已获取第 76 页数据,当前总计 912 条记录\n",
"正在获取第 77 页数据...\n",
"已获取第 77 页数据,当前总计 924 条记录\n",
"正在获取第 78 页数据...\n",
"已获取第 78 页数据,当前总计 936 条记录\n",
"正在获取第 79 页数据...\n",
"已获取第 79 页数据,当前总计 948 条记录\n",
"正在获取第 80 页数据...\n",
"已获取第 80 页数据,当前总计 960 条记录\n",
"正在获取第 81 页数据...\n",
"已获取第 81 页数据,当前总计 972 条记录\n",
"正在获取第 82 页数据...\n",
"已获取第 82 页数据,当前总计 984 条记录\n",
"正在获取第 83 页数据...\n",
"已获取第 83 页数据,当前总计 996 条记录\n",
"正在获取第 84 页数据...\n",
"已获取第 84 页数据,当前总计 1008 条记录\n",
"正在获取第 85 页数据...\n",
"已获取第 85 页数据,当前总计 1020 条记录\n",
"正在获取第 86 页数据...\n",
"已获取第 86 页数据,当前总计 1032 条记录\n",
"正在获取第 87 页数据...\n",
"已获取第 87 页数据,当前总计 1044 条记录\n",
"正在获取第 88 页数据...\n",
"已获取第 88 页数据,当前总计 1056 条记录\n",
"正在获取第 89 页数据...\n",
"已获取第 89 页数据,当前总计 1068 条记录\n",
"正在获取第 90 页数据...\n",
"已获取第 90 页数据,当前总计 1080 条记录\n",
"正在获取第 91 页数据...\n",
"已获取第 91 页数据,当前总计 1092 条记录\n",
"正在获取第 92 页数据...\n",
"已获取第 92 页数据,当前总计 1104 条记录\n",
"正在获取第 93 页数据...\n",
"已获取第 93 页数据,当前总计 1116 条记录\n",
"正在获取第 94 页数据...\n",
"已获取第 94 页数据,当前总计 1128 条记录\n",
"正在获取第 95 页数据...\n",
"已获取第 95 页数据,当前总计 1140 条记录\n",
"正在获取第 96 页数据...\n",
"已获取第 96 页数据,当前总计 1152 条记录\n",
"正在获取第 97 页数据...\n",
"已获取第 97 页数据,当前总计 1164 条记录\n",
"正在获取第 98 页数据...\n",
"已获取第 98 页数据,当前总计 1176 条记录\n",
"正在获取第 99 页数据...\n",
"已获取第 99 页数据,当前总计 1188 条记录\n",
"正在获取第 100 页数据...\n",
"已获取第 100 页数据,当前总计 1200 条记录\n",
"正在获取第 101 页数据...\n",
"已获取第 101 页数据,当前总计 1212 条记录\n",
"正在获取第 102 页数据...\n",
"已获取第 102 页数据,当前总计 1224 条记录\n",
"正在获取第 103 页数据...\n",
"已获取第 103 页数据,当前总计 1236 条记录\n",
"正在获取第 104 页数据...\n",
"已获取第 104 页数据,当前总计 1248 条记录\n",
"正在获取第 105 页数据...\n",
"已获取第 105 页数据,当前总计 1260 条记录\n",
"正在获取第 106 页数据...\n",
"已获取第 106 页数据,当前总计 1272 条记录\n",
"正在获取第 107 页数据...\n",
"已获取第 107 页数据,当前总计 1284 条记录\n",
"正在获取第 108 页数据...\n",
"已获取第 108 页数据,当前总计 1296 条记录\n",
"正在获取第 109 页数据...\n",
"已获取第 109 页数据,当前总计 1308 条记录\n",
"正在获取第 110 页数据...\n",
"已获取第 110 页数据,当前总计 1320 条记录\n",
"正在获取第 111 页数据...\n",
"已获取第 111 页数据,当前总计 1332 条记录\n",
"正在获取第 112 页数据...\n",
"已获取第 112 页数据,当前总计 1344 条记录\n",
"正在获取第 113 页数据...\n",
"已获取第 113 页数据,当前总计 1356 条记录\n",
"正在获取第 114 页数据...\n",
"已获取第 114 页数据,当前总计 1368 条记录\n",
"正在获取第 115 页数据...\n",
"已获取第 115 页数据,当前总计 1380 条记录\n",
"正在获取第 116 页数据...\n",
"已获取第 116 页数据,当前总计 1392 条记录\n",
"正在获取第 117 页数据...\n",
"已获取第 117 页数据,当前总计 1404 条记录\n",
"正在获取第 118 页数据...\n",
"已获取第 118 页数据,当前总计 1416 条记录\n",
"正在获取第 119 页数据...\n",
"已获取第 119 页数据,当前总计 1428 条记录\n",
"正在获取第 120 页数据...\n",
"已获取第 120 页数据,当前总计 1440 条记录\n",
"正在获取第 121 页数据...\n",
"已获取第 121 页数据,当前总计 1452 条记录\n",
"正在获取第 122 页数据...\n",
"已获取第 122 页数据,当前总计 1464 条记录\n",
"正在获取第 123 页数据...\n",
"已获取第 123 页数据,当前总计 1476 条记录\n",
"正在获取第 124 页数据...\n",
"已获取第 124 页数据,当前总计 1488 条记录\n",
"正在获取第 125 页数据...\n",
"已获取第 125 页数据,当前总计 1500 条记录\n",
"正在获取第 126 页数据...\n",
"已获取第 126 页数据,当前总计 1512 条记录\n",
"正在获取第 127 页数据...\n",
"已获取第 127 页数据,当前总计 1524 条记录\n",
"正在获取第 128 页数据...\n",
"已获取第 128 页数据,当前总计 1536 条记录\n",
"正在获取第 129 页数据...\n",
"已获取第 129 页数据,当前总计 1548 条记录\n",
"正在获取第 130 页数据...\n",
"已获取第 130 页数据,当前总计 1560 条记录\n",
"正在获取第 131 页数据...\n",
"已获取第 131 页数据,当前总计 1572 条记录\n",
"正在获取第 132 页数据...\n",
"已获取第 132 页数据,当前总计 1584 条记录\n",
"正在获取第 133 页数据...\n",
"已获取第 133 页数据,当前总计 1596 条记录\n",
"正在获取第 134 页数据...\n",
"已获取第 134 页数据,当前总计 1608 条记录\n",
"正在获取第 135 页数据...\n",
"已获取第 135 页数据,当前总计 1620 条记录\n",
"正在获取第 136 页数据...\n",
"已获取第 136 页数据,当前总计 1632 条记录\n",
"正在获取第 137 页数据...\n",
"已获取第 137 页数据,当前总计 1644 条记录\n",
"正在获取第 138 页数据...\n",
"已获取第 138 页数据,当前总计 1656 条记录\n",
"正在获取第 139 页数据...\n",
"已获取第 139 页数据,当前总计 1668 条记录\n",
"正在获取第 140 页数据...\n",
"已获取第 140 页数据,当前总计 1680 条记录\n",
"正在获取第 141 页数据...\n",
"已获取第 141 页数据,当前总计 1692 条记录\n",
"正在获取第 142 页数据...\n",
"已获取第 142 页数据,当前总计 1704 条记录\n",
"正在获取第 143 页数据...\n",
"已获取第 143 页数据,当前总计 1716 条记录\n",
"正在获取第 144 页数据...\n",
"已获取第 144 页数据,当前总计 1728 条记录\n",
"正在获取第 145 页数据...\n",
"已获取第 145 页数据,当前总计 1740 条记录\n",
"正在获取第 146 页数据...\n",
"已获取第 146 页数据,当前总计 1752 条记录\n",
"正在获取第 147 页数据...\n",
"已获取第 147 页数据,当前总计 1764 条记录\n",
"正在获取第 148 页数据...\n",
"已获取第 148 页数据,当前总计 1776 条记录\n",
"正在获取第 149 页数据...\n",
"已获取第 149 页数据,当前总计 1788 条记录\n",
"正在获取第 150 页数据...\n",
"已获取第 150 页数据,当前总计 1800 条记录\n",
"正在获取第 151 页数据...\n",
"已获取第 151 页数据,当前总计 1812 条记录\n",
"正在获取第 152 页数据...\n",
"已获取第 152 页数据,当前总计 1824 条记录\n",
"正在获取第 153 页数据...\n",
"已获取第 153 页数据,当前总计 1836 条记录\n",
"正在获取第 154 页数据...\n",
"已获取第 154 页数据,当前总计 1848 条记录\n",
"正在获取第 155 页数据...\n",
"已获取第 155 页数据,当前总计 1860 条记录\n",
"正在获取第 156 页数据...\n",
"已获取第 156 页数据,当前总计 1872 条记录\n",
"正在获取第 157 页数据...\n",
"已获取第 157 页数据,当前总计 1884 条记录\n",
"正在获取第 158 页数据...\n",
"已获取第 158 页数据,当前总计 1896 条记录\n",
"正在获取第 159 页数据...\n",
"已获取第 159 页数据,当前总计 1908 条记录\n",
"正在获取第 160 页数据...\n",
"已获取第 160 页数据,当前总计 1920 条记录\n",
"正在获取第 161 页数据...\n",
"已获取第 161 页数据,当前总计 1932 条记录\n",
"正在获取第 162 页数据...\n",
"已获取第 162 页数据,当前总计 1944 条记录\n",
"正在获取第 163 页数据...\n",
"已获取第 163 页数据,当前总计 1956 条记录\n",
"正在获取第 164 页数据...\n",
"已获取第 164 页数据,当前总计 1968 条记录\n",
"正在获取第 165 页数据...\n",
"已获取第 165 页数据,当前总计 1980 条记录\n",
"正在获取第 166 页数据...\n",
"已获取第 166 页数据,当前总计 1992 条记录\n",
"正在获取第 167 页数据...\n",
"已获取第 167 页数据,当前总计 2004 条记录\n",
"正在获取第 168 页数据...\n",
"已获取第 168 页数据,当前总计 2016 条记录\n",
"正在获取第 169 页数据...\n",
"已获取第 169 页数据,当前总计 2028 条记录\n",
"正在获取第 170 页数据...\n",
"已获取第 170 页数据,当前总计 2040 条记录\n",
"正在获取第 171 页数据...\n",
"已获取第 171 页数据,当前总计 2052 条记录\n",
"正在获取第 172 页数据...\n",
"已获取第 172 页数据,当前总计 2064 条记录\n",
"正在获取第 173 页数据...\n",
"已获取第 173 页数据,当前总计 2076 条记录\n",
"正在获取第 174 页数据...\n",
"已获取第 174 页数据,当前总计 2088 条记录\n",
"正在获取第 175 页数据...\n",
"已获取第 175 页数据,当前总计 2100 条记录\n",
"正在获取第 176 页数据...\n",
"已获取第 176 页数据,当前总计 2112 条记录\n",
"正在获取第 177 页数据...\n",
"已获取第 177 页数据,当前总计 2124 条记录\n",
"正在获取第 178 页数据...\n",
"已获取第 178 页数据,当前总计 2136 条记录\n",
"正在获取第 179 页数据...\n",
"已获取第 179 页数据,当前总计 2148 条记录\n",
"正在获取第 180 页数据...\n",
"已获取第 180 页数据,当前总计 2160 条记录\n",
"正在获取第 181 页数据...\n",
"已获取第 181 页数据,当前总计 2172 条记录\n",
"正在获取第 182 页数据...\n",
"已获取第 182 页数据,当前总计 2184 条记录\n",
"正在获取第 183 页数据...\n",
"已获取第 183 页数据,当前总计 2196 条记录\n",
"正在获取第 184 页数据...\n",
"已获取第 184 页数据,当前总计 2208 条记录\n",
"正在获取第 185 页数据...\n",
"已获取第 185 页数据,当前总计 2220 条记录\n",
"正在获取第 186 页数据...\n",
"已获取第 186 页数据,当前总计 2232 条记录\n",
"正在获取第 187 页数据...\n",
"已获取第 187 页数据,当前总计 2244 条记录\n",
"正在获取第 188 页数据...\n",
"已获取第 188 页数据,当前总计 2256 条记录\n",
"正在获取第 189 页数据...\n",
"已获取第 189 页数据,当前总计 2268 条记录\n",
"正在获取第 190 页数据...\n",
"已获取第 190 页数据,当前总计 2280 条记录\n",
"正在获取第 191 页数据...\n",
"已获取第 191 页数据,当前总计 2292 条记录\n",
"正在获取第 192 页数据...\n",
"已获取第 192 页数据,当前总计 2304 条记录\n",
"正在获取第 193 页数据...\n",
"已获取第 193 页数据,当前总计 2316 条记录\n",
"正在获取第 194 页数据...\n",
"已获取第 194 页数据,当前总计 2328 条记录\n",
"正在获取第 195 页数据...\n",
"已获取第 195 页数据,当前总计 2340 条记录\n",
"正在获取第 196 页数据...\n",
"已获取第 196 页数据,当前总计 2352 条记录\n",
"正在获取第 197 页数据...\n",
"已获取第 197 页数据,当前总计 2364 条记录\n",
"正在获取第 198 页数据...\n",
"已获取第 198 页数据,当前总计 2376 条记录\n",
"正在获取第 199 页数据...\n",
"已获取第 199 页数据,当前总计 2388 条记录\n",
"正在获取第 200 页数据...\n",
"已获取第 200 页数据,当前总计 2400 条记录\n",
"正在获取第 201 页数据...\n",
"已获取第 201 页数据,当前总计 2412 条记录\n",
"正在获取第 202 页数据...\n",
"已获取第 202 页数据,当前总计 2424 条记录\n",
"正在获取第 203 页数据...\n",
"已获取第 203 页数据,当前总计 2436 条记录\n",
"正在获取第 204 页数据...\n",
"已获取第 204 页数据,当前总计 2448 条记录\n",
"正在获取第 205 页数据...\n",
"已获取第 205 页数据,当前总计 2460 条记录\n",
"正在获取第 206 页数据...\n",
"已获取第 206 页数据,当前总计 2472 条记录\n",
"正在获取第 207 页数据...\n",
"已获取第 207 页数据,当前总计 2484 条记录\n",
"正在获取第 208 页数据...\n",
"已获取第 208 页数据,当前总计 2496 条记录\n",
"正在获取第 209 页数据...\n",
"已获取第 209 页数据,当前总计 2508 条记录\n",
"正在获取第 210 页数据...\n",
"已获取第 210 页数据,当前总计 2520 条记录\n",
"正在获取第 211 页数据...\n",
"已获取第 211 页数据,当前总计 2532 条记录\n",
"正在获取第 212 页数据...\n",
"已获取第 212 页数据,当前总计 2544 条记录\n",
"正在获取第 213 页数据...\n",
"已获取第 213 页数据,当前总计 2556 条记录\n",
"正在获取第 214 页数据...\n",
"已获取第 214 页数据,当前总计 2568 条记录\n",
"正在获取第 215 页数据...\n",
"已获取第 215 页数据,当前总计 2580 条记录\n",
"正在获取第 216 页数据...\n",
"已获取第 216 页数据,当前总计 2592 条记录\n",
"正在获取第 217 页数据...\n",
"已获取第 217 页数据,当前总计 2604 条记录\n",
"正在获取第 218 页数据...\n",
"已获取第 218 页数据,当前总计 2616 条记录\n",
"正在获取第 219 页数据...\n",
"已获取第 219 页数据,当前总计 2628 条记录\n",
"正在获取第 220 页数据...\n",
"已获取第 220 页数据,当前总计 2640 条记录\n",
"正在获取第 221 页数据...\n",
"已获取第 221 页数据,当前总计 2652 条记录\n",
"正在获取第 222 页数据...\n",
"已获取第 222 页数据,当前总计 2664 条记录\n",
"正在获取第 223 页数据...\n",
"已获取第 223 页数据,当前总计 2676 条记录\n",
"正在获取第 224 页数据...\n",
"已获取第 224 页数据,当前总计 2688 条记录\n",
"正在获取第 225 页数据...\n",
"已获取第 225 页数据,当前总计 2700 条记录\n",
"正在获取第 226 页数据...\n",
"已获取第 226 页数据,当前总计 2712 条记录\n",
"正在获取第 227 页数据...\n",
"已获取第 227 页数据,当前总计 2724 条记录\n",
"正在获取第 228 页数据...\n",
"已获取第 228 页数据,当前总计 2736 条记录\n",
"正在获取第 229 页数据...\n",
"已获取第 229 页数据,当前总计 2748 条记录\n",
"正在获取第 230 页数据...\n",
"已获取第 230 页数据,当前总计 2760 条记录\n",
"正在获取第 231 页数据...\n",
"已获取第 231 页数据,当前总计 2772 条记录\n",
"正在获取第 232 页数据...\n",
"已获取第 232 页数据,当前总计 2784 条记录\n",
"正在获取第 233 页数据...\n",
"已获取第 233 页数据,当前总计 2796 条记录\n",
"正在获取第 234 页数据...\n",
"已获取第 234 页数据,当前总计 2808 条记录\n",
"正在获取第 235 页数据...\n",
"已获取第 235 页数据,当前总计 2820 条记录\n",
"正在获取第 236 页数据...\n",
"已获取第 236 页数据,当前总计 2832 条记录\n",
"正在获取第 237 页数据...\n",
"已获取第 237 页数据,当前总计 2844 条记录\n",
"正在获取第 238 页数据...\n",
"已获取第 238 页数据,当前总计 2856 条记录\n",
"正在获取第 239 页数据...\n",
"已获取第 239 页数据,当前总计 2868 条记录\n",
"正在获取第 240 页数据...\n",
"已获取第 240 页数据,当前总计 2880 条记录\n",
"正在获取第 241 页数据...\n",
"已获取第 241 页数据,当前总计 2892 条记录\n",
"正在获取第 242 页数据...\n",
"已获取第 242 页数据,当前总计 2904 条记录\n",
"正在获取第 243 页数据...\n",
"已获取第 243 页数据,当前总计 2916 条记录\n",
"正在获取第 244 页数据...\n",
"已获取第 244 页数据,当前总计 2928 条记录\n",
"正在获取第 245 页数据...\n",
"已获取第 245 页数据,当前总计 2940 条记录\n",
"正在获取第 246 页数据...\n",
"已获取第 246 页数据,当前总计 2952 条记录\n",
"正在获取第 247 页数据...\n",
"已获取第 247 页数据,当前总计 2964 条记录\n",
"正在获取第 248 页数据...\n",
"已获取第 248 页数据,当前总计 2976 条记录\n",
"正在获取第 249 页数据...\n",
"已获取第 249 页数据,当前总计 2988 条记录\n",
"正在获取第 250 页数据...\n",
"已获取第 250 页数据,当前总计 3000 条记录\n",
"正在获取第 251 页数据...\n",
"已获取第 251 页数据,当前总计 3012 条记录\n",
"正在获取第 252 页数据...\n",
"已获取第 252 页数据,当前总计 3024 条记录\n",
"正在获取第 253 页数据...\n",
"已获取第 253 页数据,当前总计 3036 条记录\n",
"正在获取第 254 页数据...\n",
"已获取第 254 页数据,当前总计 3048 条记录\n",
"正在获取第 255 页数据...\n",
"已获取第 255 页数据,当前总计 3060 条记录\n",
"正在获取第 256 页数据...\n",
"已获取第 256 页数据,当前总计 3072 条记录\n",
"正在获取第 257 页数据...\n",
"已获取第 257 页数据,当前总计 3084 条记录\n",
"正在获取第 258 页数据...\n",
"已获取第 258 页数据,当前总计 3096 条记录\n",
"正在获取第 259 页数据...\n",
"已获取第 259 页数据,当前总计 3108 条记录\n",
"正在获取第 260 页数据...\n",
"已获取第 260 页数据,当前总计 3120 条记录\n",
"正在获取第 261 页数据...\n",
"已获取第 261 页数据,当前总计 3132 条记录\n",
"正在获取第 262 页数据...\n",
"已获取第 262 页数据,当前总计 3144 条记录\n",
"正在获取第 263 页数据...\n",
"已获取第 263 页数据,当前总计 3156 条记录\n",
"正在获取第 264 页数据...\n",
"已获取第 264 页数据,当前总计 3168 条记录\n",
"正在获取第 265 页数据...\n",
"已获取第 265 页数据,当前总计 3180 条记录\n",
"正在获取第 266 页数据...\n",
"已获取第 266 页数据,当前总计 3192 条记录\n",
"正在获取第 267 页数据...\n",
"已获取第 267 页数据,当前总计 3204 条记录\n",
"正在获取第 268 页数据...\n",
"已获取第 268 页数据,当前总计 3216 条记录\n",
"正在获取第 269 页数据...\n",
"已获取第 269 页数据,当前总计 3228 条记录\n",
"正在获取第 270 页数据...\n",
"已获取第 270 页数据,当前总计 3240 条记录\n",
"正在获取第 271 页数据...\n",
"已获取第 271 页数据,当前总计 3252 条记录\n",
"正在获取第 272 页数据...\n",
"已获取第 272 页数据,当前总计 3264 条记录\n",
"正在获取第 273 页数据...\n",
"已获取第 273 页数据,当前总计 3276 条记录\n",
"正在获取第 274 页数据...\n",
"已获取第 274 页数据,当前总计 3288 条记录\n",
"正在获取第 275 页数据...\n",
"已获取第 275 页数据,当前总计 3300 条记录\n",
"正在获取第 276 页数据...\n",
"已获取第 276 页数据,当前总计 3312 条记录\n",
"正在获取第 277 页数据...\n",
"已获取第 277 页数据,当前总计 3324 条记录\n",
"正在获取第 278 页数据...\n",
"已获取第 278 页数据,当前总计 3336 条记录\n",
"正在获取第 279 页数据...\n",
"已获取第 279 页数据,当前总计 3348 条记录\n",
"正在获取第 280 页数据...\n",
"已获取第 280 页数据,当前总计 3360 条记录\n",
"正在获取第 281 页数据...\n",
"已获取第 281 页数据,当前总计 3372 条记录\n",
"正在获取第 282 页数据...\n",
"已获取第 282 页数据,当前总计 3384 条记录\n",
"正在获取第 283 页数据...\n",
"已获取第 283 页数据,当前总计 3396 条记录\n",
"正在获取第 284 页数据...\n",
"已获取第 284 页数据,当前总计 3408 条记录\n",
"正在获取第 285 页数据...\n",
"已获取第 285 页数据,当前总计 3420 条记录\n",
"正在获取第 286 页数据...\n",
"已获取第 286 页数据,当前总计 3432 条记录\n",
"正在获取第 287 页数据...\n",
"已获取第 287 页数据,当前总计 3444 条记录\n",
"正在获取第 288 页数据...\n",
"已获取第 288 页数据,当前总计 3456 条记录\n",
"正在获取第 289 页数据...\n",
"已获取第 289 页数据,当前总计 3468 条记录\n",
"正在获取第 290 页数据...\n",
"已获取第 290 页数据,当前总计 3480 条记录\n",
"正在获取第 291 页数据...\n",
"已获取第 291 页数据,当前总计 3492 条记录\n",
"正在获取第 292 页数据...\n",
"已获取第 292 页数据,当前总计 3504 条记录\n",
"正在获取第 293 页数据...\n",
"已获取第 293 页数据,当前总计 3516 条记录\n",
"正在获取第 294 页数据...\n",
"已获取第 294 页数据,当前总计 3528 条记录\n",
"正在获取第 295 页数据...\n",
"已获取第 295 页数据,当前总计 3540 条记录\n",
"正在获取第 296 页数据...\n",
"已获取第 296 页数据,当前总计 3552 条记录\n",
"正在获取第 297 页数据...\n",
"已获取第 297 页数据,当前总计 3564 条记录\n",
"正在获取第 298 页数据...\n",
"已获取第 298 页数据,当前总计 3576 条记录\n",
"正在获取第 299 页数据...\n",
"已获取第 299 页数据,当前总计 3588 条记录\n",
"正在获取第 300 页数据...\n",
"已获取第 300 页数据,当前总计 3600 条记录\n",
"正在获取第 301 页数据...\n",
"已获取第 301 页数据,当前总计 3612 条记录\n",
"正在获取第 302 页数据...\n",
"已获取第 302 页数据,当前总计 3624 条记录\n",
"正在获取第 303 页数据...\n",
"已获取第 303 页数据,当前总计 3636 条记录\n",
"正在获取第 304 页数据...\n",
"已获取第 304 页数据,当前总计 3648 条记录\n",
"正在获取第 305 页数据...\n",
"已获取第 305 页数据,当前总计 3660 条记录\n",
"正在获取第 306 页数据...\n",
"已获取第 306 页数据,当前总计 3672 条记录\n",
"正在获取第 307 页数据...\n",
"已获取第 307 页数据,当前总计 3684 条记录\n",
"正在获取第 308 页数据...\n",
"已获取第 308 页数据,当前总计 3696 条记录\n",
"正在获取第 309 页数据...\n",
"已获取第 309 页数据,当前总计 3708 条记录\n",
"正在获取第 310 页数据...\n",
"已获取第 310 页数据,当前总计 3720 条记录\n",
"正在获取第 311 页数据...\n",
"已获取第 311 页数据,当前总计 3732 条记录\n",
"正在获取第 312 页数据...\n",
"已获取第 312 页数据,当前总计 3744 条记录\n",
"正在获取第 313 页数据...\n",
"已获取第 313 页数据,当前总计 3756 条记录\n",
"正在获取第 314 页数据...\n",
"已获取第 314 页数据,当前总计 3768 条记录\n",
"正在获取第 315 页数据...\n",
"已获取第 315 页数据,当前总计 3780 条记录\n",
"正在获取第 316 页数据...\n",
"已获取第 316 页数据,当前总计 3792 条记录\n",
"正在获取第 317 页数据...\n",
"已获取第 317 页数据,当前总计 3804 条记录\n",
"正在获取第 318 页数据...\n",
"已获取第 318 页数据,当前总计 3816 条记录\n",
"正在获取第 319 页数据...\n",
"已获取第 319 页数据,当前总计 3828 条记录\n",
"正在获取第 320 页数据...\n",
"已获取第 320 页数据,当前总计 3840 条记录\n",
"正在获取第 321 页数据...\n",
"已获取第 321 页数据,当前总计 3852 条记录\n",
"正在获取第 322 页数据...\n",
"已获取第 322 页数据,当前总计 3864 条记录\n",
"正在获取第 323 页数据...\n",
"已获取第 323 页数据,当前总计 3876 条记录\n",
"正在获取第 324 页数据...\n",
"已获取第 324 页数据,当前总计 3888 条记录\n",
"正在获取第 325 页数据...\n",
"已获取第 325 页数据,当前总计 3900 条记录\n",
"正在获取第 326 页数据...\n",
"已获取第 326 页数据,当前总计 3912 条记录\n",
"正在获取第 327 页数据...\n",
"已获取第 327 页数据,当前总计 3924 条记录\n",
"正在获取第 328 页数据...\n",
"已获取第 328 页数据,当前总计 3936 条记录\n",
"正在获取第 329 页数据...\n",
"已获取第 329 页数据,当前总计 3948 条记录\n",
"正在获取第 330 页数据...\n",
"已获取第 330 页数据,当前总计 3960 条记录\n",
"正在获取第 331 页数据...\n",
"已获取第 331 页数据,当前总计 3972 条记录\n",
"正在获取第 332 页数据...\n",
"已获取第 332 页数据,当前总计 3984 条记录\n",
"正在获取第 333 页数据...\n",
"已获取第 333 页数据,当前总计 3996 条记录\n",
"正在获取第 334 页数据...\n",
"已获取第 334 页数据,当前总计 4008 条记录\n",
"正在获取第 335 页数据...\n",
"已获取第 335 页数据,当前总计 4020 条记录\n",
"正在获取第 336 页数据...\n",
"已获取第 336 页数据,当前总计 4032 条记录\n",
"正在获取第 337 页数据...\n",
"已获取第 337 页数据,当前总计 4044 条记录\n",
"正在获取第 338 页数据...\n",
"已获取第 338 页数据,当前总计 4056 条记录\n",
"正在获取第 339 页数据...\n",
"已获取第 339 页数据,当前总计 4068 条记录\n",
"正在获取第 340 页数据...\n",
"已获取第 340 页数据,当前总计 4080 条记录\n",
"正在获取第 341 页数据...\n",
"已获取第 341 页数据,当前总计 4092 条记录\n",
"正在获取第 342 页数据...\n",
"已获取第 342 页数据,当前总计 4104 条记录\n",
"正在获取第 343 页数据...\n",
"已获取第 343 页数据,当前总计 4116 条记录\n",
"正在获取第 344 页数据...\n",
"已获取第 344 页数据,当前总计 4128 条记录\n",
"正在获取第 345 页数据...\n",
"已获取第 345 页数据,当前总计 4140 条记录\n",
"正在获取第 346 页数据...\n",
"已获取第 346 页数据,当前总计 4152 条记录\n",
"正在获取第 347 页数据...\n",
"已获取第 347 页数据,当前总计 4164 条记录\n",
"正在获取第 348 页数据...\n",
"已获取第 348 页数据,当前总计 4176 条记录\n",
"正在获取第 349 页数据...\n",
"已获取第 349 页数据,当前总计 4188 条记录\n",
"正在获取第 350 页数据...\n",
"已获取第 350 页数据,当前总计 4200 条记录\n",
"正在获取第 351 页数据...\n",
"已获取第 351 页数据,当前总计 4212 条记录\n",
"正在获取第 352 页数据...\n",
"已获取第 352 页数据,当前总计 4224 条记录\n",
"正在获取第 353 页数据...\n",
"已获取第 353 页数据,当前总计 4236 条记录\n",
"正在获取第 354 页数据...\n",
"已获取第 354 页数据,当前总计 4248 条记录\n",
"正在获取第 355 页数据...\n",
"已获取第 355 页数据,当前总计 4260 条记录\n",
"正在获取第 356 页数据...\n",
"已获取第 356 页数据,当前总计 4272 条记录\n",
"正在获取第 357 页数据...\n",
"已获取第 357 页数据,当前总计 4284 条记录\n",
"正在获取第 358 页数据...\n",
"已获取第 358 页数据,当前总计 4296 条记录\n",
"正在获取第 359 页数据...\n",
"已获取第 359 页数据,当前总计 4308 条记录\n",
"正在获取第 360 页数据...\n",
"已获取第 360 页数据,当前总计 4320 条记录\n",
"正在获取第 361 页数据...\n",
"已获取第 361 页数据,当前总计 4332 条记录\n",
"正在获取第 362 页数据...\n",
"已获取第 362 页数据,当前总计 4344 条记录\n",
"正在获取第 363 页数据...\n",
"已获取第 363 页数据,当前总计 4356 条记录\n",
"正在获取第 364 页数据...\n",
"已获取第 364 页数据,当前总计 4368 条记录\n",
"正在获取第 365 页数据...\n",
"已获取第 365 页数据,当前总计 4380 条记录\n",
"正在获取第 366 页数据...\n",
"已获取第 366 页数据,当前总计 4392 条记录\n",
"正在获取第 367 页数据...\n",
"已获取第 367 页数据,当前总计 4404 条记录\n",
"正在获取第 368 页数据...\n",
"已获取第 368 页数据,当前总计 4416 条记录\n",
"正在获取第 369 页数据...\n",
"已获取第 369 页数据,当前总计 4428 条记录\n",
"正在获取第 370 页数据...\n",
"已获取第 370 页数据,当前总计 4440 条记录\n",
"正在获取第 371 页数据...\n",
"已获取第 371 页数据,当前总计 4452 条记录\n",
"正在获取第 372 页数据...\n",
"已获取第 372 页数据,当前总计 4464 条记录\n",
"正在获取第 373 页数据...\n",
"已获取第 373 页数据,当前总计 4476 条记录\n",
"正在获取第 374 页数据...\n",
"已获取第 374 页数据,当前总计 4488 条记录\n",
"正在获取第 375 页数据...\n",
"已获取第 375 页数据,当前总计 4500 条记录\n",
"正在获取第 376 页数据...\n",
"已获取第 376 页数据,当前总计 4512 条记录\n",
"正在获取第 377 页数据...\n",
"已获取第 377 页数据,当前总计 4524 条记录\n",
"正在获取第 378 页数据...\n",
"已获取第 378 页数据,当前总计 4536 条记录\n",
"正在获取第 379 页数据...\n",
"已获取第 379 页数据,当前总计 4548 条记录\n",
"正在获取第 380 页数据...\n",
"已获取第 380 页数据,当前总计 4560 条记录\n",
"正在获取第 381 页数据...\n",
"已获取第 381 页数据,当前总计 4572 条记录\n",
"正在获取第 382 页数据...\n",
"已获取第 382 页数据,当前总计 4584 条记录\n",
"正在获取第 383 页数据...\n",
"已获取第 383 页数据,当前总计 4596 条记录\n",
"正在获取第 384 页数据...\n",
"已获取第 384 页数据,当前总计 4608 条记录\n",
"正在获取第 385 页数据...\n",
"已获取第 385 页数据,当前总计 4620 条记录\n",
"正在获取第 386 页数据...\n",
"已获取第 386 页数据,当前总计 4632 条记录\n",
"正在获取第 387 页数据...\n",
"已获取第 387 页数据,当前总计 4644 条记录\n",
"正在获取第 388 页数据...\n",
"已获取第 388 页数据,当前总计 4656 条记录\n",
"正在获取第 389 页数据...\n",
"已获取第 389 页数据,当前总计 4668 条记录\n",
"正在获取第 390 页数据...\n",
"已获取第 390 页数据,当前总计 4680 条记录\n",
"正在获取第 391 页数据...\n",
"已获取第 391 页数据,当前总计 4692 条记录\n",
"正在获取第 392 页数据...\n",
"已获取第 392 页数据,当前总计 4704 条记录\n",
"正在获取第 393 页数据...\n",
"已获取第 393 页数据,当前总计 4716 条记录\n",
"正在获取第 394 页数据...\n",
"已获取第 394 页数据,当前总计 4728 条记录\n",
"正在获取第 395 页数据...\n",
"已获取第 395 页数据,当前总计 4740 条记录\n",
"正在获取第 396 页数据...\n",
"已获取第 396 页数据,当前总计 4752 条记录\n",
"正在获取第 397 页数据...\n",
"已获取第 397 页数据,当前总计 4764 条记录\n",
"正在获取第 398 页数据...\n",
"已获取第 398 页数据,当前总计 4776 条记录\n",
"正在获取第 399 页数据...\n",
"已获取第 399 页数据,当前总计 4788 条记录\n",
"正在获取第 400 页数据...\n",
"已获取第 400 页数据,当前总计 4800 条记录\n",
"正在获取第 401 页数据...\n",
"已获取第 401 页数据,当前总计 4812 条记录\n",
"正在获取第 402 页数据...\n",
"已获取第 402 页数据,当前总计 4824 条记录\n",
"正在获取第 403 页数据...\n",
"已获取第 403 页数据,当前总计 4836 条记录\n",
"正在获取第 404 页数据...\n",
"已获取第 404 页数据,当前总计 4848 条记录\n",
"正在获取第 405 页数据...\n",
"已获取第 405 页数据,当前总计 4860 条记录\n",
"正在获取第 406 页数据...\n",
"已获取第 406 页数据,当前总计 4872 条记录\n",
"正在获取第 407 页数据...\n",
"已获取第 407 页数据,当前总计 4884 条记录\n",
"正在获取第 408 页数据...\n",
"已获取第 408 页数据,当前总计 4896 条记录\n",
"正在获取第 409 页数据...\n",
"已获取第 409 页数据,当前总计 4908 条记录\n",
"正在获取第 410 页数据...\n",
"已获取第 410 页数据,当前总计 4920 条记录\n",
"正在获取第 411 页数据...\n",
"已获取第 411 页数据,当前总计 4932 条记录\n",
"正在获取第 412 页数据...\n",
"已获取第 412 页数据,当前总计 4944 条记录\n",
"正在获取第 413 页数据...\n",
"已获取第 413 页数据,当前总计 4956 条记录\n",
"正在获取第 414 页数据...\n",
"已获取第 414 页数据,当前总计 4968 条记录\n",
"正在获取第 415 页数据...\n",
"已获取第 415 页数据,当前总计 4980 条记录\n",
"正在获取第 416 页数据...\n",
"已获取第 416 页数据,当前总计 4992 条记录\n",
"正在获取第 417 页数据...\n",
"已获取第 417 页数据,当前总计 5004 条记录\n",
"正在获取第 418 页数据...\n",
"已获取第 418 页数据,当前总计 5016 条记录\n",
"正在获取第 419 页数据...\n",
"已获取第 419 页数据,当前总计 5028 条记录\n",
"正在获取第 420 页数据...\n",
"已获取第 420 页数据,当前总计 5040 条记录\n",
"正在获取第 421 页数据...\n",
"已获取第 421 页数据,当前总计 5052 条记录\n",
"正在获取第 422 页数据...\n",
"已获取第 422 页数据,当前总计 5064 条记录\n",
"正在获取第 423 页数据...\n",
"已获取第 423 页数据,当前总计 5076 条记录\n",
"正在获取第 424 页数据...\n",
"已获取第 424 页数据,当前总计 5088 条记录\n",
"正在获取第 425 页数据...\n",
"已获取第 425 页数据,当前总计 5100 条记录\n",
"正在获取第 426 页数据...\n",
"已获取第 426 页数据,当前总计 5112 条记录\n",
"正在获取第 427 页数据...\n",
"已获取第 427 页数据,当前总计 5124 条记录\n",
"正在获取第 428 页数据...\n",
"已获取第 428 页数据,当前总计 5136 条记录\n",
"正在获取第 429 页数据...\n",
"已获取第 429 页数据,当前总计 5148 条记录\n",
"正在获取第 430 页数据...\n",
"已获取第 430 页数据,当前总计 5160 条记录\n",
"正在获取第 431 页数据...\n",
"已获取第 431 页数据,当前总计 5172 条记录\n",
"正在获取第 432 页数据...\n",
"已获取第 432 页数据,当前总计 5184 条记录\n",
"正在获取第 433 页数据...\n",
"已获取第 433 页数据,当前总计 5196 条记录\n",
"正在获取第 434 页数据...\n",
"已获取第 434 页数据,当前总计 5208 条记录\n",
"正在获取第 435 页数据...\n",
"已获取第 435 页数据,当前总计 5220 条记录\n",
"正在获取第 436 页数据...\n",
"已获取第 436 页数据,当前总计 5232 条记录\n",
"正在获取第 437 页数据...\n",
"已获取第 437 页数据,当前总计 5244 条记录\n",
"正在获取第 438 页数据...\n",
"已获取第 438 页数据,当前总计 5256 条记录\n",
"正在获取第 439 页数据...\n",
"已获取第 439 页数据,当前总计 5268 条记录\n",
"正在获取第 440 页数据...\n",
"已获取第 440 页数据,当前总计 5280 条记录\n",
"正在获取第 441 页数据...\n",
"已获取第 441 页数据,当前总计 5292 条记录\n",
"正在获取第 442 页数据...\n",
"已获取第 442 页数据,当前总计 5304 条记录\n",
"正在获取第 443 页数据...\n",
"已获取第 443 页数据,当前总计 5316 条记录\n",
"正在获取第 444 页数据...\n",
"已获取第 444 页数据,当前总计 5328 条记录\n",
"正在获取第 445 页数据...\n",
"已获取第 445 页数据,当前总计 5340 条记录\n",
"正在获取第 446 页数据...\n",
"已获取第 446 页数据,当前总计 5352 条记录\n",
"正在获取第 447 页数据...\n",
"已获取第 447 页数据,当前总计 5364 条记录\n",
"正在获取第 448 页数据...\n",
"已获取第 448 页数据,当前总计 5376 条记录\n",
"正在获取第 449 页数据...\n",
"已获取第 449 页数据,当前总计 5388 条记录\n",
"正在获取第 450 页数据...\n",
"已获取第 450 页数据,当前总计 5400 条记录\n",
"正在获取第 451 页数据...\n",
"已获取第 451 页数据,当前总计 5412 条记录\n",
"正在获取第 452 页数据...\n",
"已获取第 452 页数据,当前总计 5424 条记录\n",
"正在获取第 453 页数据...\n",
"已获取第 453 页数据,当前总计 5436 条记录\n",
"正在获取第 454 页数据...\n",
"已获取第 454 页数据,当前总计 5448 条记录\n",
"正在获取第 455 页数据...\n",
"已获取第 455 页数据,当前总计 5460 条记录\n",
"正在获取第 456 页数据...\n",
"已获取第 456 页数据,当前总计 5472 条记录\n",
"正在获取第 457 页数据...\n",
"已获取第 457 页数据,当前总计 5484 条记录\n",
"正在获取第 458 页数据...\n",
"已获取第 458 页数据,当前总计 5496 条记录\n",
"正在获取第 459 页数据...\n",
"已获取第 459 页数据,当前总计 5508 条记录\n",
"正在获取第 460 页数据...\n",
"已获取第 460 页数据,当前总计 5520 条记录\n",
"正在获取第 461 页数据...\n",
"已获取第 461 页数据,当前总计 5532 条记录\n",
"正在获取第 462 页数据...\n",
"已获取第 462 页数据,当前总计 5544 条记录\n",
"正在获取第 463 页数据...\n",
"已获取第 463 页数据,当前总计 5556 条记录\n",
"正在获取第 464 页数据...\n",
"已获取第 464 页数据,当前总计 5568 条记录\n",
"正在获取第 465 页数据...\n",
"已获取第 465 页数据,当前总计 5580 条记录\n",
"正在获取第 466 页数据...\n",
"已获取第 466 页数据,当前总计 5592 条记录\n",
"正在获取第 467 页数据...\n",
"已获取第 467 页数据,当前总计 5604 条记录\n",
"正在获取第 468 页数据...\n",
"已获取第 468 页数据,当前总计 5616 条记录\n",
"正在获取第 469 页数据...\n",
"已获取第 469 页数据,当前总计 5628 条记录\n",
"正在获取第 470 页数据...\n",
"已获取第 470 页数据,当前总计 5640 条记录\n",
"正在获取第 471 页数据...\n",
"已获取第 471 页数据,当前总计 5652 条记录\n",
"正在获取第 472 页数据...\n",
"已获取第 472 页数据,当前总计 5664 条记录\n",
"正在获取第 473 页数据...\n",
"已获取第 473 页数据,当前总计 5676 条记录\n",
"正在获取第 474 页数据...\n",
"已获取第 474 页数据,当前总计 5688 条记录\n",
"正在获取第 475 页数据...\n",
"已获取第 475 页数据,当前总计 5700 条记录\n",
"正在获取第 476 页数据...\n",
"已获取第 476 页数据,当前总计 5712 条记录\n",
"正在获取第 477 页数据...\n",
"已获取第 477 页数据,当前总计 5724 条记录\n",
"正在获取第 478 页数据...\n",
"已获取第 478 页数据,当前总计 5736 条记录\n",
"正在获取第 479 页数据...\n",
"已获取第 479 页数据,当前总计 5748 条记录\n",
"正在获取第 480 页数据...\n",
"已获取第 480 页数据,当前总计 5760 条记录\n",
"正在获取第 481 页数据...\n",
"已获取第 481 页数据,当前总计 5772 条记录\n",
"正在获取第 482 页数据...\n",
"已获取第 482 页数据,当前总计 5784 条记录\n",
"正在获取第 483 页数据...\n",
"已获取第 483 页数据,当前总计 5796 条记录\n",
"正在获取第 484 页数据...\n",
"已获取第 484 页数据,当前总计 5808 条记录\n",
"正在获取第 485 页数据...\n",
"已获取第 485 页数据,当前总计 5820 条记录\n",
"正在获取第 486 页数据...\n",
"已获取第 486 页数据,当前总计 5832 条记录\n",
"正在获取第 487 页数据...\n",
"已获取第 487 页数据,当前总计 5844 条记录\n",
"正在获取第 488 页数据...\n",
"已获取第 488 页数据,当前总计 5856 条记录\n",
"正在获取第 489 页数据...\n",
"已获取第 489 页数据,当前总计 5868 条记录\n",
"正在获取第 490 页数据...\n",
"已获取第 490 页数据,当前总计 5880 条记录\n",
"正在获取第 491 页数据...\n",
"已获取第 491 页数据,当前总计 5892 条记录\n",
"正在获取第 492 页数据...\n",
"已获取第 492 页数据,当前总计 5904 条记录\n",
"正在获取第 493 页数据...\n",
"已获取第 493 页数据,当前总计 5916 条记录\n",
"正在获取第 494 页数据...\n",
"已获取第 494 页数据,当前总计 5928 条记录\n",
"正在获取第 495 页数据...\n",
"已获取第 495 页数据,当前总计 5940 条记录\n",
"正在获取第 496 页数据...\n",
"已获取第 496 页数据,当前总计 5952 条记录\n",
"正在获取第 497 页数据...\n",
"已获取第 497 页数据,当前总计 5964 条记录\n",
"正在获取第 498 页数据...\n",
"已获取第 498 页数据,当前总计 5976 条记录\n",
"正在获取第 499 页数据...\n",
"已获取第 499 页数据,当前总计 5988 条记录\n",
"正在获取第 500 页数据...\n",
"已获取第 500 页数据,当前总计 6000 条记录\n",
"正在获取第 501 页数据...\n",
"已获取第 501 页数据,当前总计 6012 条记录\n",
"正在获取第 502 页数据...\n",
"已获取第 502 页数据,当前总计 6024 条记录\n",
"正在获取第 503 页数据...\n",
"已获取第 503 页数据,当前总计 6036 条记录\n",
"正在获取第 504 页数据...\n",
"已获取第 504 页数据,当前总计 6048 条记录\n",
"正在获取第 505 页数据...\n",
"已获取第 505 页数据,当前总计 6060 条记录\n",
"正在获取第 506 页数据...\n",
"已获取第 506 页数据,当前总计 6072 条记录\n",
"正在获取第 507 页数据...\n",
"已获取第 507 页数据,当前总计 6084 条记录\n",
"正在获取第 508 页数据...\n",
"已获取第 508 页数据,当前总计 6096 条记录\n",
"正在获取第 509 页数据...\n",
"已获取第 509 页数据,当前总计 6108 条记录\n",
"正在获取第 510 页数据...\n",
"已获取第 510 页数据,当前总计 6120 条记录\n",
"正在获取第 511 页数据...\n",
"已获取第 511 页数据,当前总计 6132 条记录\n",
"正在获取第 512 页数据...\n",
"已获取第 512 页数据,当前总计 6144 条记录\n",
"正在获取第 513 页数据...\n",
"已获取第 513 页数据,当前总计 6156 条记录\n",
"正在获取第 514 页数据...\n",
"已获取第 514 页数据,当前总计 6168 条记录\n",
"正在获取第 515 页数据...\n",
"已获取第 515 页数据,当前总计 6180 条记录\n",
"正在获取第 516 页数据...\n",
"已获取第 516 页数据,当前总计 6192 条记录\n",
"正在获取第 517 页数据...\n",
"已获取第 517 页数据,当前总计 6204 条记录\n",
"正在获取第 518 页数据...\n",
"已获取第 518 页数据,当前总计 6216 条记录\n",
"正在获取第 519 页数据...\n",
"已获取第 519 页数据,当前总计 6228 条记录\n",
"正在获取第 520 页数据...\n",
"已获取第 520 页数据,当前总计 6240 条记录\n",
"正在获取第 521 页数据...\n",
"已获取第 521 页数据,当前总计 6252 条记录\n",
"正在获取第 522 页数据...\n",
"已获取第 522 页数据,当前总计 6264 条记录\n",
"正在获取第 523 页数据...\n",
"已获取第 523 页数据,当前总计 6276 条记录\n",
"正在获取第 524 页数据...\n",
"已获取第 524 页数据,当前总计 6288 条记录\n",
"正在获取第 525 页数据...\n",
"已获取第 525 页数据,当前总计 6300 条记录\n",
"正在获取第 526 页数据...\n",
"已获取第 526 页数据,当前总计 6312 条记录\n",
"正在获取第 527 页数据...\n",
"已获取第 527 页数据,当前总计 6324 条记录\n",
"正在获取第 528 页数据...\n",
"已获取第 528 页数据,当前总计 6336 条记录\n",
"正在获取第 529 页数据...\n",
"已获取第 529 页数据,当前总计 6348 条记录\n",
"正在获取第 530 页数据...\n",
"已获取第 530 页数据,当前总计 6360 条记录\n",
"正在获取第 531 页数据...\n",
"已获取第 531 页数据,当前总计 6372 条记录\n",
"正在获取第 532 页数据...\n",
"已获取第 532 页数据,当前总计 6384 条记录\n",
"正在获取第 533 页数据...\n",
"已获取第 533 页数据,当前总计 6396 条记录\n",
"正在获取第 534 页数据...\n",
"已获取第 534 页数据,当前总计 6408 条记录\n",
"正在获取第 535 页数据...\n",
"已获取第 535 页数据,当前总计 6420 条记录\n",
"正在获取第 536 页数据...\n",
"已获取第 536 页数据,当前总计 6432 条记录\n",
"正在获取第 537 页数据...\n",
"已获取第 537 页数据,当前总计 6444 条记录\n",
"正在获取第 538 页数据...\n",
"已获取第 538 页数据,当前总计 6456 条记录\n",
"正在获取第 539 页数据...\n",
"已获取第 539 页数据,当前总计 6468 条记录\n",
"正在获取第 540 页数据...\n",
"已获取第 540 页数据,当前总计 6480 条记录\n",
"正在获取第 541 页数据...\n",
"已获取第 541 页数据,当前总计 6492 条记录\n",
"正在获取第 542 页数据...\n",
"已获取第 542 页数据,当前总计 6504 条记录\n",
"正在获取第 543 页数据...\n",
"已获取第 543 页数据,当前总计 6516 条记录\n",
"正在获取第 544 页数据...\n",
"已获取第 544 页数据,当前总计 6528 条记录\n",
"正在获取第 545 页数据...\n",
"已获取第 545 页数据,当前总计 6540 条记录\n",
"正在获取第 546 页数据...\n",
"已获取第 546 页数据,当前总计 6552 条记录\n",
"正在获取第 547 页数据...\n",
"已获取第 547 页数据,当前总计 6564 条记录\n",
"正在获取第 548 页数据...\n",
"已获取第 548 页数据,当前总计 6576 条记录\n",
"正在获取第 549 页数据...\n",
"已获取第 549 页数据,当前总计 6588 条记录\n",
"正在获取第 550 页数据...\n",
"已获取第 550 页数据,当前总计 6600 条记录\n",
"正在获取第 551 页数据...\n",
"已获取第 551 页数据,当前总计 6612 条记录\n",
"正在获取第 552 页数据...\n",
"已获取第 552 页数据,当前总计 6621 条记录\n",
"数据获取完成,总计 6621 条记录\n",
"数据已保存到: D:/Idea Project/F6+宜搭+其它(1)/张阳脚本/文件输出/好店长工单列表-展开明细.xlsx\n",
"共生成 10977 行数据\n",
"\n",
"前5行数据预览:\n",
" id createDateTime totalAmount \\\n",
"0 2d565c97652245f9918b5bbed390cebd 2026-03-14 18:06:46 88.0 \n",
"1 76eada1f4c4e4ae2861f000958ce4c32 2026-03-14 15:33:09 25.0 \n",
"2 26a397127c184eaf8eb2ab0b731421ab 2026-03-13 13:22:03 0.0 \n",
"3 89e2c36b2e69466e9a81d8cbb0ded73a 2026-03-13 10:47:48 25.0 \n",
"4 d034bbd9fc0a408fa9bacee97d0a79e9 2026-03-09 08:54:25 0.0 \n",
"\n",
" beforeDiscountTotalAmount remark imgRemark settlementDate status \\\n",
"0 88.0 2026-03-14 18:06:52 COMPLETED \n",
"1 25.0 2026-03-14 15:33:18 COMPLETED \n",
"2 0.0 2026-03-13 13:22:02 COMPLETED \n",
"3 25.0 2026-03-13 10:47:53 COMPLETED \n",
"4 0.0 2026-03-09 08:54:24 COMPLETED \n",
"\n",
" receiptVoucherId licensePlate ... itemQuantity \\\n",
"0 fdd44cc801db410e942b3dba9afd7802 皖C57CE9 ... 1.0 \n",
"1 1a81b39f074d46f7a8091d5264e9ade6 皖F54306 ... 1.0 \n",
"2 19a0429926e94d97accb8fce34e783c5 皖CQJ667 ... 1.0 \n",
"3 5ea5cb2a398748d3b6830956d6676dcb 皖A811NJ ... 1.0 \n",
"4 a2950b7a29ab47b7a34c27d19046706f 豫R9YR72 ... 3.0 \n",
"\n",
" itemTotalAmount itemBeforeDiscountTotalAmount \\\n",
"0 88.0 88.0 \n",
"1 25.0 25.0 \n",
"2 0.0 0.0 \n",
"3 25.0 25.0 \n",
"4 0.0 0.0 \n",
"\n",
" itemSaleSourceId itemSaleCategory itemFromCounterCard \\\n",
"0 c36bff2c75cb469db4a6f7783616c833 SERVICES False \n",
"1 640b4648797449e09db8d48e299c5c7f SERVICES False \n",
"2 640b4648797449e09db8d48e299c5c7f SERVICES True \n",
"3 640b4648797449e09db8d48e299c5c7f SERVICES False \n",
"4 640b4648797449e09db8d48e299c5c7f SERVICES True \n",
"\n",
" itemContainsPurchaseOrder itemCustomizedSupplierId \\\n",
"0 False None \n",
"1 False None \n",
"2 False None \n",
"3 False None \n",
"4 False None \n",
"\n",
" itemCustomizedSupplierName itemRemark \n",
"0 None None \n",
"1 None None \n",
"2 None None \n",
"3 None None \n",
"4 None None \n",
"\n",
"[5 rows x 97 columns]\n",
"\n",
"共有 97 列:\n",
"['id', 'createDateTime', 'totalAmount', 'beforeDiscountTotalAmount', 'remark', 'imgRemark', 'settlementDate', 'status', 'receiptVoucherId', 'licensePlate', 'storeId', 'totalPaidAmount', 'totalBalanceAmount', 'totalGrossProfitAmount', 'containsPurchaseOrder', 'quotationDateTime', 'sendDateTime', 'preDeductAmount', 'maintainOrder', 'operatorId'] ...\n"
]
}
],
"execution_count": 13
}
],
"metadata": {
"kernelspec": {
"display_name": "base",
"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.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}