液化气更改存储文件为xlsx
This commit is contained in:
		
							parent
							
								
									81bf9a262a
								
							
						
					
					
						commit
						11592714ea
					
				
										
											Binary file not shown.
										
									
								
							| @ -2,7 +2,7 @@ | ||||
|  "cells": [ | ||||
|   { | ||||
|    "cell_type": "code", | ||||
|    "execution_count": 24, | ||||
|    "execution_count": null, | ||||
|    "metadata": {}, | ||||
|    "outputs": [ | ||||
|     { | ||||
| @ -33,15 +33,13 @@ | ||||
|    "source": [ | ||||
|     "import requests\n", | ||||
|     "import json\n", | ||||
|     "import xlrd\n", | ||||
|     "import xlwt\n", | ||||
|     "\n", | ||||
|     "from datetime import datetime,timedelta\n", | ||||
|     "import time\n", | ||||
|     "\n", | ||||
|     "# 变量定义\n", | ||||
|     "login_url = \"http://10.200.32.39/jingbo-api/api/server/login\"\n", | ||||
|     "search_url = \"http://10.200.32.39/jingbo-api/api/warehouse/dwDataItem/queryByItemNos\"\n", | ||||
|     "# search_url = \"http://10.200.32.39/jingbo-api/api/warehouse/dwDataItem/queryDataListItemNos\"  \n", | ||||
|     "queryDataListItemNos_url = \"http://10.200.32.39/jingbo-api//api/warehouse/dwDataItem/queryDataListItemNos\"\n", | ||||
|     "queryDataListItemNos_url = \"http://10.200.32.39/jingbo-api/api/warehouse/dwDataItem/queryDataListItemNos\"\n", | ||||
|     "\n", | ||||
|     "\n", | ||||
|     "login_push_url = \"http://10.200.32.39/jingbo-api/api/server/login\"\n", | ||||
| @ -157,15 +155,6 @@ | ||||
|     "        \"funcOperation\": \"查询\"\n", | ||||
|     "    }\n", | ||||
|     "    \n", | ||||
|     "#     search_data =  {\n", | ||||
|     "#     \"funcModule\": \"数据项\",\n", | ||||
|     "#     \"funcOperation\": \"查询\",\n", | ||||
|     "#     \"data\": {\n", | ||||
|     "#         \"dateStart\": date,\n", | ||||
|     "#         \"dateEnd\": date,\n", | ||||
|     "#         \"dataItemNoList\":dataItemNoList # 数据项编码,代表 brent最低价和最高价\n", | ||||
|     "#     }\n", | ||||
|     "# }\n", | ||||
|     "    \n", | ||||
|     "    headers = {\"Authorization\": token}\n", | ||||
|     "    search_res = requests.post(url=search_url, headers=headers, json=search_data, timeout=(3, 5))\n", | ||||
| @ -189,46 +178,6 @@ | ||||
|     "        return search_value\n", | ||||
|     "\n", | ||||
|     "\n", | ||||
|     "\n", | ||||
|     "# xls文件处理\n", | ||||
|     "\n", | ||||
|     "def write_xls(data):\n", | ||||
|     "    # 创建一个Workbook对象\n", | ||||
|     "    workbook = xlwt.Workbook()\n", | ||||
|     "\n", | ||||
|     "    # 创建一个Sheet对象,可指定名称\n", | ||||
|     "    sheet = workbook.load('Sheet1')\n", | ||||
|     "\n", | ||||
|     "    # 写入数据行\n", | ||||
|     "    for row_index, row_data in enumerate(data):\n", | ||||
|     "        for col_index, cell_data in enumerate(row_data):\n", | ||||
|     "            sheet.write(row_index, col_index, cell_data)\n", | ||||
|     "\n", | ||||
|     "    # 保存Workbook到文件\n", | ||||
|     "    workbook.save(get_cur_time()[0] + '.xls')\n", | ||||
|     "\n", | ||||
|     "\n", | ||||
|     "def get_cur_time(date = ''):\n", | ||||
|     "    if date == '':\n", | ||||
|     "        now = datetime.now()\n", | ||||
|     "    else:\n", | ||||
|     "        now = date\n", | ||||
|     "    year = now.year\n", | ||||
|     "    month = now.month\n", | ||||
|     "    day = now.day\n", | ||||
|     "\n", | ||||
|     "    if month < 10:\n", | ||||
|     "        month = \"0\" + str(month)\n", | ||||
|     "    if day < 10:\n", | ||||
|     "        day = \"0\" + str(day)\n", | ||||
|     "    cur_time = str(year) + str(month) + str(day)\n", | ||||
|     "    cur_time2 = str(year) + \"-\" + str(month) + \"-\" + str(day)\n", | ||||
|     "#     cur_time = '20231011'\n", | ||||
|     "#     cur_time2 = '2023-10-11'\n", | ||||
|     "    return cur_time, cur_time2\n", | ||||
|     "\n", | ||||
|     "\n", | ||||
|     "\n", | ||||
|     "def get_head_push_auth():\n", | ||||
|     "    login_res = requests.post(url=login_push_url, json=login_push_data, timeout=(3, 5))\n", | ||||
|     "    text = json.loads(login_res.text)\n", | ||||
| @ -498,100 +447,8 @@ | ||||
|     "    with open(Pkl_Filename, 'wb') as file:  \n", | ||||
|     "       pickle.dump(grid_search_XGB, file)\n", | ||||
|     "\n", | ||||
|     "\n", | ||||
|     "def updateYesterdayExcelData(date='', token=None):\n", | ||||
|     "    # 使用pandas读取Excel文件\n", | ||||
|     "    df = pd.read_excel(read_file_path_name, engine='openpyxl')\n", | ||||
|     "\n", | ||||
|     "    # 获取第二行的数据作为列名\n", | ||||
|     "    one_cols = df.iloc[0,:].tolist()\n", | ||||
|     "\n", | ||||
|     "    # 获取当前日期的前一天\n", | ||||
|     "    if date == '':\n", | ||||
|     "        previous_date = (datetime.now() - timedelta(days=1)).strftime('%Y-%m-%d')\n", | ||||
|     "    else:\n", | ||||
|     "        # 字符串转日期\n", | ||||
|     "        previous_date = (datetime.strptime(date, \"%Y-%m-%d\")-timedelta(days=1)).strftime('%Y-%m-%d')\n", | ||||
|     "    \n", | ||||
|     "\n", | ||||
|     "    cur_time, cur_time2 = getNow(previous_date)\n", | ||||
|     "    search_data = {\n", | ||||
|     "        \"data\": {\n", | ||||
|     "            \"date\": cur_time,\n", | ||||
|     "            \"dataItemNoList\": one_cols[1:]\n", | ||||
|     "        },\n", | ||||
|     "        \"funcModule\": \"数据项\",\n", | ||||
|     "        \"funcOperation\": \"查询\"\n", | ||||
|     "    }\n", | ||||
|     "    headers = {\"Authorization\": token}\n", | ||||
|     "    search_res = requests.post(url=search_url, headers=headers, json=search_data, timeout=(3, 5))\n", | ||||
|     "    search_value = json.loads(search_res.text)[\"data\"]\n", | ||||
|     "    if search_value:\n", | ||||
|     "        datas = search_value\n", | ||||
|     "    else:\n", | ||||
|     "        datas = None\n", | ||||
|     "\n", | ||||
|     "    append_rows = [cur_time2]\n", | ||||
|     "    dataItemNo_dataValue = {}\n", | ||||
|     "    for data_value in datas:\n", | ||||
|     "        if \"dataValue\" not in data_value:\n", | ||||
|     "            print(data_value)\n", | ||||
|     "            dataItemNo_dataValue[data_value[\"dataItemNo\"]] = \"\"\n", | ||||
|     "        else:\n", | ||||
|     "            dataItemNo_dataValue[data_value[\"dataItemNo\"]] = data_value[\"dataValue\"]\n", | ||||
|     "    for value in one_cols[1:]:\n", | ||||
|     "        if value in dataItemNo_dataValue:\n", | ||||
|     "            append_rows.append(dataItemNo_dataValue[value])\n", | ||||
|     "        else:\n", | ||||
|     "            append_rows.append(\"\")\n", | ||||
|     "\n", | ||||
|     "    print('更新数据前')\n", | ||||
|     "    print(df.tail(1))\n", | ||||
|     "    # 检查日期是否已存在于数据中\n", | ||||
|     "    if previous_date not in df['Date'].values:\n", | ||||
|     "        # 将新的数据添加到DataFrame中\n", | ||||
|     "        new_row = pd.DataFrame([append_rows], columns=df.columns.tolist())\n", | ||||
|     "        df = pd.concat([df, new_row], ignore_index=True)\n", | ||||
|     "    else:\n", | ||||
|     "        # 更新现有数据\n", | ||||
|     "        print('日期存在,即将更新')\n", | ||||
|     "        print('新数据',append_rows[1:])\n", | ||||
|     "        df.loc[df['Date'] == previous_date, df.columns.tolist()[1:]] = append_rows[1:]\n", | ||||
|     "\n", | ||||
|     "    print('更新数据后')\n", | ||||
|     "    print(df.tail(1))\n", | ||||
|     "    # 使用pandas保存Excel文件\n", | ||||
|     "    df.to_excel(\"液化气数据.xlsx\", index=False, engine='openpyxl')\n", | ||||
|     "\n", | ||||
|     "\n", | ||||
|     "def read_xls_data_bak():\n", | ||||
|     "    global one_cols, two_cols\n", | ||||
|     "    # 打开 XLS 文件\n", | ||||
|     "    workbook = xlrd.open_workbook(read_file_path_name)\n", | ||||
|     "\n", | ||||
|     "    # 获取所有表格名称\n", | ||||
|     "    # sheet_names = workbook.sheet_names()\n", | ||||
|     "\n", | ||||
|     "    # 选择第一个表格\n", | ||||
|     "    sheet = workbook.sheet_by_index(0)\n", | ||||
|     "\n", | ||||
|     "    # 获取行数和列数\n", | ||||
|     "    num_rows = sheet.nrows\n", | ||||
|     "    # num_cols = sheet.ncols\n", | ||||
|     "\n", | ||||
|     "    # 遍历每一行,获取单元格数据\n", | ||||
|     "    # for i in range(num_rows):\n", | ||||
|     "    #     row_data = sheet.row_values(i)\n", | ||||
|     "    #     one_cols.append(row_data)\n", | ||||
|     "    #     two_cols.append(row_data[1])\n", | ||||
|     "\n", | ||||
|     "    row_data = sheet.row_values(1)\n", | ||||
|     "    one_cols = row_data\n", | ||||
|     "\n", | ||||
|     "    # 关闭 XLS 文件\n", | ||||
|     "    # workbook.close()\n", | ||||
|     "\n", | ||||
|     "def read_xls_data():\n", | ||||
|     "    \"\"\"获取特征项ID\"\"\"\n", | ||||
|     "    global one_cols, two_cols\n", | ||||
|     "    # 使用pandas读取Excel文件\n", | ||||
|     "    df = pd.read_excel(read_file_path_name, header=None)  # 不自动识别列名\n", | ||||
| @ -599,90 +456,21 @@ | ||||
|     "    one_cols = df.iloc[1].tolist()[1:]\n", | ||||
|     "    print(f'获取到的数据项ID{one_cols}')\n", | ||||
|     "\n", | ||||
|     "\n", | ||||
|     "def start(date=''):\n", | ||||
|     "    \"\"\"获取当日数据\"\"\"\n", | ||||
|     "    read_xls_data()\n", | ||||
|     "\n", | ||||
|     "    token = get_head_auth()\n", | ||||
|     "    if not token:\n", | ||||
|     "        return\n", | ||||
|     "    token_push = get_head_push_auth()\n", | ||||
|     "    if not token_push:\n", | ||||
|     "        return\n", | ||||
|     "    \n", | ||||
|     "    cur_time,cur_time2 = getNow(date)\n", | ||||
|     "    datas = get_data_value(token, one_cols[1:],cur_time)\n", | ||||
|     "#     if not datas:\n", | ||||
|     "#         return\n", | ||||
|     "\n", | ||||
|     "    # data_list = [two_cols, one_cols]\n", | ||||
|     "    append_rows = [cur_time2]\n", | ||||
|     "    dataItemNo_dataValue = {}\n", | ||||
|     "    for data_value in datas:\n", | ||||
|     "        if \"dataValue\" not in data_value:\n", | ||||
|     "            dataItemNo_dataValue[data_value[\"dataItemNo\"]] = \"\"\n", | ||||
|     "        else:\n", | ||||
|     "            dataItemNo_dataValue[data_value[\"dataItemNo\"]] = data_value[\"dataValue\"]\n", | ||||
|     "      \n", | ||||
|     "    for value in one_cols[1:]:\n", | ||||
|     "        if value in dataItemNo_dataValue:\n", | ||||
|     "            append_rows.append(dataItemNo_dataValue[value])\n", | ||||
|     "        else:\n", | ||||
|     "            append_rows.append(\"\")\n", | ||||
|     "    save_xlsx(append_rows)\n", | ||||
|     "    \n", | ||||
|     "    \n", | ||||
|     "    # 获取当月的数据写入到指定文件\n", | ||||
|     "    # queryDataListItemNos(token=token)\n", | ||||
|     "    \n", | ||||
|     "    # optimize_Model()\n", | ||||
|     "    # upload_data_to_system(token_push,cur_time)\n", | ||||
|     "    \n", | ||||
|     "    \n", | ||||
|     "    \n", | ||||
|     "    # data_list.append(three_cols)\n", | ||||
|     "    # write_xls(data_list)\n", | ||||
|     "\n", | ||||
|     "def getNow(date='',offset=0):\n", | ||||
|     "    \n", | ||||
|     "    if date == '':\n", | ||||
|     "        now = datetime.now() - timedelta(days=offset)\n", | ||||
|     "    else:\n", | ||||
|     "        if isinstance(date, datetime):\n", | ||||
|     "            now = date\n", | ||||
|     "        else:\n", | ||||
|     "            try:\n", | ||||
|     "                # 先尝试常见日期格式解析\n", | ||||
|     "                now = datetime.strptime(str(date), \"%Y-%m-%d\")\n", | ||||
|     "            except ValueError:\n", | ||||
|     "                # 失败后尝试无分隔符格式\n", | ||||
|     "                now = datetime.strptime(str(date), \"%Y%m%d\")\n", | ||||
|     "            print(now,type(now))\n", | ||||
|     "    now = now - timedelta(days=offset)\n", | ||||
|     "    year = now.year\n", | ||||
|     "    month = now.month\n", | ||||
|     "    day = now.day\n", | ||||
|     "\n", | ||||
|     "    if month < 10:\n", | ||||
|     "        month = \"0\" + str(month)\n", | ||||
|     "    if day < 10:\n", | ||||
|     "        day = \"0\" + str(day)\n", | ||||
|     "    cur_time = str(year) + str(month) + str(day)\n", | ||||
|     "    cur_time2 = str(year) + \"-\" + str(month) + \"-\" + str(day)\n", | ||||
|     "    return cur_time,cur_time2\n", | ||||
|     "    \n", | ||||
|     "def start_1(date=''):\n", | ||||
|     "    read_xls_data()\n", | ||||
|     "    token = get_head_auth()\n", | ||||
|     "    if not token:\n", | ||||
|     "    print(f\"获取{cur_time}数据\")\n", | ||||
|     "    datas = get_data_value(token, one_cols,date=cur_time)\n", | ||||
|     "    if not datas:\n", | ||||
|     "        return\n", | ||||
|     "    \n", | ||||
|     "    cur_time,cur_time2 = getNow(date,offset=1)\n", | ||||
|     "    print(f\"补充{cur_time}数据\")\n", | ||||
|     "    datas = get_data_value(token, one_cols[1:],date=cur_time)\n", | ||||
|     "#     if not datas:\n", | ||||
|     "#         return\n", | ||||
|     "\n", | ||||
|     "    # data_list = [two_cols, one_cols]\n", | ||||
|     "    append_rows = [cur_time]\n", | ||||
|     "    append_rows = [cur_time2]\n", | ||||
|     "    dataItemNo_dataValue = {}\n", | ||||
|     "    for data_value in datas:\n", | ||||
|     "        if \"dataValue\" not in data_value:\n", | ||||
| @ -699,70 +487,94 @@ | ||||
|     "    print('添加的行:',append_rows)\n", | ||||
|     "    save_xls_2(append_rows)\n", | ||||
|     "\n", | ||||
|     "\n", | ||||
|     "def getNow(date='', offset=0):\n", | ||||
|     "    \"\"\"生成指定日期的两种格式字符串\n", | ||||
|     "    Args:\n", | ||||
|     "        date: 支持多种输入类型:\n", | ||||
|     "            - datetime对象\n", | ||||
|     "            - 字符串格式(支持'%Y-%m-%d'和'%Y%m%d')\n", | ||||
|     "            - 空字符串表示当前日期\n", | ||||
|     "        offset: 日期偏移天数\n", | ||||
|     "    Returns:\n", | ||||
|     "        tuple: (紧凑日期字符串, 标准日期字符串)\n", | ||||
|     "    \"\"\"\n", | ||||
|     "    # 日期解析逻辑\n", | ||||
|     "    if isinstance(date, datetime):\n", | ||||
|     "        now = date\n", | ||||
|     "    else:\n", | ||||
|     "        now = datetime.now()\n", | ||||
|     "        if date:\n", | ||||
|     "            # 尝试多种日期格式解析\n", | ||||
|     "            for fmt in ('%Y-%m-%d', '%Y%m%d', '%Y/%m/%d'):\n", | ||||
|     "                try:\n", | ||||
|     "                    now = datetime.strptime(str(date), fmt)\n", | ||||
|     "                    break\n", | ||||
|     "                except ValueError:\n", | ||||
|     "                    continue\n", | ||||
|     "            else:\n", | ||||
|     "                raise ValueError(f\"无法解析的日期格式: {date}\")\n", | ||||
|     "\n", | ||||
|     "    # 应用日期偏移\n", | ||||
|     "    now = now - timedelta(days=offset)\n", | ||||
|     "    \n", | ||||
|     "    # data_list.append(three_cols)\n", | ||||
|     "    # write_xls(data_list)\n", | ||||
|     "    # 统一格式化输出\n", | ||||
|     "    date_str = now.strftime(\"%Y-%m-%d\")\n", | ||||
|     "    compact_date = date_str.replace(\"-\", \"\")\n", | ||||
|     "    return compact_date, date_str\n", | ||||
|     "\n", | ||||
|     "def start_1(date=''):\n", | ||||
|     "    \"\"\"补充昨日数据\"\"\"\n", | ||||
|     "    read_xls_data()\n", | ||||
|     "    token = get_head_auth()\n", | ||||
|     "    if not token:\n", | ||||
|     "        return\n", | ||||
|     "    \n", | ||||
|     "def save_xls_1(append_rows):\n", | ||||
|     "    cur_time,cur_time2 = getNow(date,offset=1)\n", | ||||
|     "    print(f\"补充{cur_time}数据\")\n", | ||||
|     "    datas = get_data_value(token, one_cols,date=cur_time)\n", | ||||
|     "    if not datas:\n", | ||||
|     "        print(f\"{cur_time}没有数据\")\n", | ||||
|     "        return\n", | ||||
|     "\n", | ||||
|     "    # 打开xls文件\n", | ||||
|     "    workbook = xlrd.open_workbook('液化气数据.xlsx')\n", | ||||
|     "    append_rows = [cur_time2]\n", | ||||
|     "    dataItemNo_dataValue = {}\n", | ||||
|     "    for data_value in datas:\n", | ||||
|     "        if \"dataValue\" not in data_value:\n", | ||||
|     "            print(data_value)\n", | ||||
|     "            dataItemNo_dataValue[data_value[\"dataItemNo\"]] = \"\"\n", | ||||
|     "        else:\n", | ||||
|     "            dataItemNo_dataValue[data_value[\"dataItemNo\"]] = data_value[\"dataValue\"]\n", | ||||
|     "       \n", | ||||
|     "    for value in one_cols:\n", | ||||
|     "        if value in dataItemNo_dataValue:\n", | ||||
|     "            append_rows.append(dataItemNo_dataValue[value])\n", | ||||
|     "        else:\n", | ||||
|     "            append_rows.append(\"\")\n", | ||||
|     "    print('添加的行:',append_rows)\n", | ||||
|     "    save_xls_2(append_rows)\n", | ||||
|     "\n", | ||||
|     "    # 获取所有sheet的个数\n", | ||||
|     "    sheet_count = len(workbook.sheet_names())\n", | ||||
|     "\n", | ||||
|     "    # 获取所有sheet的名称\n", | ||||
|     "    sheet_names = workbook.sheet_names()\n", | ||||
|     "\n", | ||||
|     "    new_workbook = xlwt.Workbook()\n", | ||||
|     "    for i in range(sheet_count):\n", | ||||
|     "        # 获取当前sheet\n", | ||||
|     "        sheet = workbook.sheet_by_index(i)\n", | ||||
|     "\n", | ||||
|     "        # 获取sheet的行数和列数\n", | ||||
|     "        row_count = sheet.nrows - 1\n", | ||||
|     "        col_count = sheet.ncols\n", | ||||
|     "        # 获取原有数据\n", | ||||
|     "        data = []\n", | ||||
|     "        for row in range(row_count):\n", | ||||
|     "            row_data = []\n", | ||||
|     "            for col in range(col_count):\n", | ||||
|     "                row_data.append(sheet.cell_value(row, col))\n", | ||||
|     "            data.append(row_data)\n", | ||||
|     "        # 创建xlwt的Workbook对象\n", | ||||
|     "        # 创建sheet\n", | ||||
|     "        new_sheet = new_workbook.add_sheet(sheet_names[i])\n", | ||||
|     "\n", | ||||
|     "        # 将原有的数据写入新的sheet\n", | ||||
|     "        for row in range(row_count):\n", | ||||
|     "            for col in range(col_count):\n", | ||||
|     "                new_sheet.write(row, col, data[row][col])\n", | ||||
|     "\n", | ||||
|     "        if i == 0:\n", | ||||
|     "            # 在新的sheet中添加数据\n", | ||||
|     "            for col in range(col_count):\n", | ||||
|     "                new_sheet.write(row_count, col, append_rows[col])\n", | ||||
|     "\n", | ||||
|     "    # 保存新的xls文件\n", | ||||
|     "    new_workbook.save(\"液化气数据.xlsx\")    \n", | ||||
|     "\n", | ||||
|     "def save_xls_2(append_rows):\n", | ||||
|     "    \"\"\"保存或更新数据到Excel文件\n", | ||||
|     "    参数:\n", | ||||
|     "        append_rows (list): 需要追加/更新的数据行,格式为[日期, 数据项1, 数据项2,...]\n", | ||||
|     "    \"\"\"\n", | ||||
|     "    try:\n", | ||||
|     "        # 读取现有数据(假设第一行为列名)\n", | ||||
|     "        df = pd.read_excel('液化气数据.xlsx', sheet_name=0)\n", | ||||
|     "        print(df.columns)\n", | ||||
|     "        append_rows = pd.DataFrame(append_rows, index=df.columns)\n", | ||||
|     "        # 转换append_rows为DataFrame\n", | ||||
|     "        append_rows = pd.DataFrame([append_rows],columns=df.columns)\n", | ||||
|     "        # 创建新数据行\n", | ||||
|     "        new_date = append_rows['Date'].values\n", | ||||
|     "        new_date = append_rows['Date'].values[0]\n", | ||||
|     "        \n", | ||||
|     "        dates = df['Date'].to_list()\n", | ||||
|     "        \n", | ||||
|     "        # 判断日期是否存在\n", | ||||
|     "        if new_date in dates:\n", | ||||
|     "            # 找到日期所在行的索引\n", | ||||
|     "            date_mask = df['Date'] == new_date\n", | ||||
|     "            # 存在则更新数据\n", | ||||
|     "            df.loc[date_mask] = append_rows\n", | ||||
|     "            df.loc[date_mask] = append_rows.values\n", | ||||
|     "            print(f\"更新 {new_date} 数据\")\n", | ||||
|     "        else:\n", | ||||
|     "            # 不存在则追加数据\n", | ||||
| @ -779,8 +591,7 @@ | ||||
|     "        pd.DataFrame([append_rows]).to_excel('液化气数据.xlsx', index=False, engine='openpyxl')\n", | ||||
|     "    except Exception as e:\n", | ||||
|     "        print(f\"保存数据时发生错误: {str(e)}\")\n", | ||||
|     "    \n", | ||||
|     "    \n", | ||||
|     "\n", | ||||
|     "def check_data(dataItemNo):\n", | ||||
|     "    token = get_head_auth()\n", | ||||
|     "    if not token:\n", | ||||
| @ -790,89 +601,6 @@ | ||||
|     "    if not datas:\n", | ||||
|     "        return\n", | ||||
|     "\n", | ||||
|     "def save_xlsx(append_rows):\n", | ||||
|     "    from openpyxl import load_workbook\n", | ||||
|     "\n", | ||||
|     "    # 加载现有工作簿\n", | ||||
|     "    workbook = load_workbook('液化气数据.xlsx')\n", | ||||
|     "    \n", | ||||
|     "    # 创建新工作簿并复制所有工作表结构\n", | ||||
|     "    new_workbook = load_workbook('液化气数据.xlsx')\n", | ||||
|     "    \n", | ||||
|     "    # 遍历所有工作表\n", | ||||
|     "    for sheetname in workbook.sheetnames:\n", | ||||
|     "        sheet = workbook[sheetname]\n", | ||||
|     "        new_sheet = new_workbook[sheetname]\n", | ||||
|     "        \n", | ||||
|     "        # 获取原始数据行数\n", | ||||
|     "        row_count = sheet.max_row\n", | ||||
|     "        \n", | ||||
|     "        # 在第一个工作表中追加数据\n", | ||||
|     "        if sheetname == workbook.sheetnames[0]:\n", | ||||
|     "            # 追加新行数据\n", | ||||
|     "            new_row = (row_count + 1, )\n", | ||||
|     "            for col_idx, value in enumerate(append_rows, start=1):\n", | ||||
|     "                new_sheet.cell(row=row_count+1, column=col_idx, value=value)\n", | ||||
|     "\n", | ||||
|     "    # 保存修改后的工作簿\n", | ||||
|     "    new_workbook.save(\"液化气数据.xlsx\")\n", | ||||
|     "\n", | ||||
|     "def save_xls(append_rows):\n", | ||||
|     "\n", | ||||
|     "    # 修改文件打开方式\n", | ||||
|     "    try:\n", | ||||
|     "        # 尝试用xlrd打开旧版xls文件\n", | ||||
|     "        workbook = xlrd.open_workbook('液化气数据.xlsx')\n", | ||||
|     "    except:\n", | ||||
|     "        # 使用openpyxl打开新版xlsx文件\n", | ||||
|     "        from openpyxl import load_workbook\n", | ||||
|     "        workbook = load_workbook('液化气数据.xlsx')\n", | ||||
|     "\n", | ||||
|     "    # 获取所有sheet的个数\n", | ||||
|     "    sheet_count = len(workbook.sheet_names())\n", | ||||
|     "\n", | ||||
|     "    # 获取所有sheet的名称\n", | ||||
|     "    sheet_names = workbook.sheet_names()\n", | ||||
|     "\n", | ||||
|     "    new_workbook = xlwt.Workbook()\n", | ||||
|     "    for i in range(sheet_count):\n", | ||||
|     "        # 获取当前sheet\n", | ||||
|     "        sheet = workbook.sheet_by_index(i)\n", | ||||
|     "\n", | ||||
|     "        # 获取sheet的行数和列数\n", | ||||
|     "        row_count = sheet.nrows\n", | ||||
|     "        col_count = sheet.ncols\n", | ||||
|     "        # 获取原有数据\n", | ||||
|     "        data = []\n", | ||||
|     "        for row in range(row_count):\n", | ||||
|     "            row_data = []\n", | ||||
|     "            for col in range(col_count):\n", | ||||
|     "                row_data.append(sheet.cell_value(row, col))\n", | ||||
|     "            data.append(row_data)\n", | ||||
|     "        # 创建xlwt的Workbook对象\n", | ||||
|     "        # 创建sheet\n", | ||||
|     "        new_sheet = new_workbook.add_sheet(sheet_names[i])\n", | ||||
|     "\n", | ||||
|     "        # 将原有的数据写入新的sheet\n", | ||||
|     "        for row in range(row_count):\n", | ||||
|     "            for col in range(col_count):\n", | ||||
|     "                new_sheet.write(row, col, data[row][col])\n", | ||||
|     "\n", | ||||
|     "        if i == 0:\n", | ||||
|     "            # 在新的sheet中添加数据\n", | ||||
|     "            for col in range(col_count):\n", | ||||
|     "                new_sheet.write(row_count, col, append_rows[col])\n", | ||||
|     "\n", | ||||
|     "    # 保存新的xls文件\n", | ||||
|     "    new_workbook.save(\"液化气数据.xlsx\")\n", | ||||
|     "\n", | ||||
|     "\n", | ||||
|     "\n", | ||||
|     "\n", | ||||
|     "\n", | ||||
|     "\n", | ||||
|     "\n", | ||||
|     "\n", | ||||
|     "def get_queryDataListItemNos_value(token, url, dataItemNoList, dateStart, dateEnd):\n", | ||||
|     "\n", | ||||
|     "    search_data = {\n", | ||||
| @ -927,86 +655,15 @@ | ||||
|     "    # 保存修改后的xlsx文件\n", | ||||
|     "    new_workbook.save(\"液化气数据.xlsx\")\n", | ||||
|     "\n", | ||||
|     "# def save_queryDataListItemNos_xls(data_df,dataItemNoList):\n", | ||||
|     "\n", | ||||
|     "#     current_year_month = datetime.now().strftime('%Y-%m')\n", | ||||
|     "#     grouped = data_df.groupby(\"dataDate\")\n", | ||||
|     "\n", | ||||
|     "#     # 打开xls文件\n", | ||||
|     "#     workbook = xlrd.open_workbook('液化气数据.xlsx')\n", | ||||
|     "\n", | ||||
|     "#     # 获取所有sheet的个数\n", | ||||
|     "#     sheet_count = len(workbook.sheet_names())\n", | ||||
|     "\n", | ||||
|     "#     # 获取所有sheet的名称\n", | ||||
|     "#     sheet_names = workbook.sheet_names()\n", | ||||
|     "\n", | ||||
|     "#     new_workbook = xlwt.Workbook()\n", | ||||
|     "#     for i in range(sheet_count):\n", | ||||
|     "#         # 获取当前sheet\n", | ||||
|     "#         sheet = workbook.sheet_by_index(i)\n", | ||||
|     "\n", | ||||
|     "#         # 获取sheet的行数和列数\n", | ||||
|     "#         row_count = sheet.nrows\n", | ||||
|     "#         col_count = sheet.ncols\n", | ||||
|     "#         # 获取原有数据\n", | ||||
|     "#         data = []\n", | ||||
|     "#         for row in range(row_count):\n", | ||||
|     "#             row_data = []\n", | ||||
|     "#             for col in range(col_count):\n", | ||||
|     "#                 row_data.append(sheet.cell_value(row, col))\n", | ||||
|     "#             data.append(row_data)\n", | ||||
|     "\n", | ||||
|     "#         # 创建xlwt的Workbook对象\n", | ||||
|     "#         # 创建sheet\n", | ||||
|     "#         new_sheet = new_workbook.add_sheet(sheet_names[i])\n", | ||||
|     "\n", | ||||
|     "\n", | ||||
|     "#         current_year_month_row = 0\n", | ||||
|     "#         # 将原有的数据写入新的sheet\n", | ||||
|     "#         for row in range(row_count):\n", | ||||
|     "#             for col in range(col_count):\n", | ||||
|     "#                 col0 = data[row][0]\n", | ||||
|     "#                 # print(\"col0\",col0[:7])\n", | ||||
|     "#                 if col0[:7] == current_year_month:\n", | ||||
|     "#                     current_year_month_row += 1\n", | ||||
|     "#                     break\n", | ||||
|     "#                 new_sheet.write(row, col, data[row][col])\n", | ||||
|     "\n", | ||||
|     "\n", | ||||
|     "#         # print(\"current_year_month_row\",current_year_month_row)\n", | ||||
|     "#         if i == 0:\n", | ||||
|     "#             rowFlag = 0\n", | ||||
|     "#             # 查看每组数据\n", | ||||
|     "#             for date, group in grouped:\n", | ||||
|     "#                 new_sheet.write(row_count + rowFlag - current_year_month_row, 0, date)\n", | ||||
|     "#                 for j in range(len(dataItemNoList)):\n", | ||||
|     "#                     dataItemNo = dataItemNoList[j]\n", | ||||
|     "\n", | ||||
|     "#                 # for dataItemNo in dataItemNoList:\n", | ||||
|     "#                     if group[group[\"dataItemNo\"] == dataItemNo][\"dataValue\"].values:\n", | ||||
|     "\n", | ||||
|     "#                         new_sheet.write(row_count + rowFlag - current_year_month_row, j + 1, group[group[\"dataItemNo\"] == dataItemNo][\"dataValue\"].values[0])\n", | ||||
|     "\n", | ||||
|     "#                 rowFlag += 1\n", | ||||
|     "\n", | ||||
|     "#     # 保存新的xls文件\n", | ||||
|     "#     new_workbook.save(\"液化气数据.xlsx\")\n", | ||||
|     "\n", | ||||
|     "\n", | ||||
|     "\n", | ||||
|     "\n", | ||||
|     "def queryDataListItemNos(date=None,token=None):\n", | ||||
|     "    df = pd.read_excel('液化气数据.xlsx')\n", | ||||
|     "    dataItemNoList = df.iloc[0].tolist()[1:]\n", | ||||
|     "    \n", | ||||
|     "    if token is None:\n", | ||||
|     "        token = get_head_auth()\n", | ||||
|     "\n", | ||||
|     "        if not token:\n", | ||||
|     "            print('token获取失败')\n", | ||||
|     "            return\n", | ||||
|     "\n", | ||||
|     "    # 获取当前日期\n", | ||||
|     "    if date is None:\n", | ||||
|     "        current_date = datetime.now()\n", | ||||
| @ -1014,62 +671,18 @@ | ||||
|     "        current_date = date\n", | ||||
|     "    # 获取当月1日\n", | ||||
|     "    first_day_of_month = current_date.replace(day=1)\n", | ||||
|     "\n", | ||||
|     "    # 格式化为 YYYYMMDD 格式\n", | ||||
|     "    dateEnd = current_date.strftime('%Y%m%d')\n", | ||||
|     "    dateStart = first_day_of_month.strftime('%Y%m%d')\n", | ||||
|     "\n", | ||||
|     "    search_value = get_queryDataListItemNos_value(token, queryDataListItemNos_url, dataItemNoList, dateStart, dateEnd)\n", | ||||
|     "\n", | ||||
|     "\n", | ||||
|     "    data_df = pd.DataFrame(search_value)\n", | ||||
|     "\n", | ||||
|     "    data_df[\"dataDate\"] = pd.to_datetime(data_df[\"dataDate\"])\n", | ||||
|     "    data_df[\"dataDate\"] = data_df[\"dataDate\"].dt.strftime('%Y-%m-%d')\n", | ||||
|     "    print(data_df)\n", | ||||
|     "    save_queryDataListItemNos_xls(data_df,dataItemNoList)\n", | ||||
|     "    print('当月数据更新完成')\n", | ||||
|     "\n", | ||||
|     "\n", | ||||
|     "\n", | ||||
|     "def start_3(date,token,token_push):\n", | ||||
|     "    '''预测上传数据'''\n", | ||||
|     "    read_xls_data()\n", | ||||
|     "\n", | ||||
|     "    # token = get_head_auth()\n", | ||||
|     "    # if not token:\n", | ||||
|     "    #     return\n", | ||||
|     "    # token_push = get_head_push_auth()\n", | ||||
|     "    # if not token_push:\n", | ||||
|     "    #     return\n", | ||||
|     "\n", | ||||
|     "    datas = get_data_value(token, one_cols[1:],date)\n", | ||||
|     "    if not datas:\n", | ||||
|     "        return\n", | ||||
|     "\n", | ||||
|     "    # data_list = [two_cols, one_cols]\n", | ||||
|     "    append_rows = [get_cur_time(date)[1]]\n", | ||||
|     "    dataItemNo_dataValue = {}\n", | ||||
|     "    for data_value in datas:\n", | ||||
|     "        if \"dataValue\" not in data_value:\n", | ||||
|     "            print(data_value)\n", | ||||
|     "            dataItemNo_dataValue[data_value[\"dataItemNo\"]] = \"\"\n", | ||||
|     "        else:\n", | ||||
|     "            dataItemNo_dataValue[data_value[\"dataItemNo\"]] = data_value[\"dataValue\"]\n", | ||||
|     "       \n", | ||||
|     "    for value in one_cols[1:]:\n", | ||||
|     "        if value in dataItemNo_dataValue:\n", | ||||
|     "            append_rows.append(dataItemNo_dataValue[value])\n", | ||||
|     "        else:\n", | ||||
|     "            append_rows.append(\"\")\n", | ||||
|     "    save_xlsx(append_rows)\n", | ||||
|     "\n", | ||||
|     "    # 获取当月的数据写入到指定文件\n", | ||||
|     "    # optimize_Model()\n", | ||||
|     "    # upload_data_to_system(token_push,date)\n", | ||||
|     "    # data_list.append(three_cols)\n", | ||||
|     "    # write_xls(data_list)\n", | ||||
|     "\n", | ||||
|     "def main(start_date=None,token=None,token_push=None):\n", | ||||
|     "    if start_date is None:\n", | ||||
|     "        start_date = datetime.now()\n", | ||||
| @ -1081,21 +694,18 @@ | ||||
|     "    print(date)\n", | ||||
|     "    # 更新当月数据\n", | ||||
|     "    queryDataListItemNos(start_date,token)\n", | ||||
|     "    # 更新当日数据\n", | ||||
|     "    # start(date)\n", | ||||
|     "    # 训练模型\n", | ||||
|     "    optimize_Model()\n", | ||||
|     "    # 预测&上传预测结果\n", | ||||
|     "    upload_data_to_system(token_push,start_date)\n", | ||||
|     "\n", | ||||
|     "\n", | ||||
|     "# if __name__ == \"__main__\":\n", | ||||
|     "\n", | ||||
|     "#     # 获取当月的数据写入到指定文件\n", | ||||
|     "#     queryDataListItemNos()\n" | ||||
|     "\n" | ||||
|    ] | ||||
|   }, | ||||
|   { | ||||
|    "cell_type": "code", | ||||
|    "execution_count": 25, | ||||
|    "execution_count": 6, | ||||
|    "metadata": { | ||||
|     "scrolled": true | ||||
|    }, | ||||
| @ -1144,7 +754,7 @@ | ||||
|   }, | ||||
|   { | ||||
|    "cell_type": "code", | ||||
|    "execution_count": 26, | ||||
|    "execution_count": null, | ||||
|    "metadata": {}, | ||||
|    "outputs": [ | ||||
|     { | ||||
| @ -1152,23 +762,102 @@ | ||||
|      "output_type": "stream", | ||||
|      "text": [ | ||||
|       "运行中ing...\n", | ||||
|       "获取到的数据项ID['YHQMXBB|C01100008|STRIKE_PRICE', 'C01100008|CORTED_VALUE', 'C01100008|AUCTION_MAX_PRICE', 'C01100008|AMOUNT', 'C01100008|YEDAY_AMOUNT', '100028046|LISTING_PRICE', 'ICE_CL0_LAST_YEDAY_PRICE', '91370200163576944B|C01100008|STRIKE_PRICE', '9137078672073757X8|C01100008|STRIKE_PRICE', '91370500674526498A|C01100008|STRIKE_PRICE', '91370305773165341A|C01100008|STRIKE_PRICE', '91370521164880008P|C01100008|STRIKE_PRICE', '91370321164425136B|C01100008|STRIKE_PRICE', 'SD|GC|ZDW|LIST_PRICE', '370500|ISOBUTANE|LIST_PRICE', 'SD|YT|SG|LIST_PRICE', '91110000710926094P|C01100008|SUPPLY_MERE', '91110000710932515R|C01100008|SUPPLY_MERE', '91370500674526498A|C01100008|SUPPLY_MERE', '91370321164425136B|C01100008|SUPPLY_MERE', 'C01100008|OTHER|SUPPLY_MERE', 'SD|WJH|DEMANDS', 'C01100008|SUY_DED_DAP', 'C01100008|EFFECTIVE_STOCK', '912102117169477344|C01100008|STRIKE_PRICE', '91110304102767480H|C01100008|STRIKE_PRICE', '91130193670310403L|C01100008|STRIKE_PRICE', 'HD|LPG|IMPORT_PRICE', 'SD|WJH|SALES_PRICE']\n", | ||||
|       "获取的token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhcGlfZGV2IiwidGgiOiI4YTQ1NzdkYmQ5MTk2NzU3NThkNTc5OTlhMWU4OTFmZSIsImx0IjoiYXBpIiwiaXNzIjoiIiwidG0iOiJQQyIsImV4cCI6MTc0NDE0NDIwMCwianRpIjoiMTVhZTZjMDg4NWRmNDM0YWFiMDdkNDE4YzM3NDMwZjAifQ._GK6U4SGiCed-P8EBXIuSAU3QgV_8Zx4DNviupKYkeQ\n", | ||||
|       "补充20250406数据\n", | ||||
|       "数据项查询参数search_data:\n", | ||||
|       "{'data': {'date': '20250406', 'dataItemNoList': ['C01100008|CORTED_VALUE', 'C01100008|AUCTION_MAX_PRICE', 'C01100008|AMOUNT', 'C01100008|YEDAY_AMOUNT', '100028046|LISTING_PRICE', 'ICE_CL0_LAST_YEDAY_PRICE', '91370200163576944B|C01100008|STRIKE_PRICE', '9137078672073757X8|C01100008|STRIKE_PRICE', '91370500674526498A|C01100008|STRIKE_PRICE', '91370305773165341A|C01100008|STRIKE_PRICE', '91370521164880008P|C01100008|STRIKE_PRICE', '91370321164425136B|C01100008|STRIKE_PRICE', 'SD|GC|ZDW|LIST_PRICE', '370500|ISOBUTANE|LIST_PRICE', 'SD|YT|SG|LIST_PRICE', '91110000710926094P|C01100008|SUPPLY_MERE', '91110000710932515R|C01100008|SUPPLY_MERE', '91370500674526498A|C01100008|SUPPLY_MERE', '91370321164425136B|C01100008|SUPPLY_MERE', 'C01100008|OTHER|SUPPLY_MERE', 'SD|WJH|DEMANDS', 'C01100008|SUY_DED_DAP', 'C01100008|EFFECTIVE_STOCK', '912102117169477344|C01100008|STRIKE_PRICE', '91110304102767480H|C01100008|STRIKE_PRICE', '91130193670310403L|C01100008|STRIKE_PRICE', 'HD|LPG|IMPORT_PRICE', 'SD|WJH|SALES_PRICE']}, 'funcModule': '数据项', 'funcOperation': '查询'}\n", | ||||
|       "数据项查询结果search_res:\n", | ||||
|       "{\"confirmFlg\":false,\"data\":[{\"dataDate\":\"20250406\",\"dataItemNo\":\"100028046|LISTING_PRICE\",\"dataValue\":8114.00000000},{\"dataDate\":\"20250406\",\"dataItemNo\":\"91110000710926094P|C01100008|SUPPLY_MERE\",\"dataValue\":1300.00000000},{\"dataDate\":\"20250406\",\"dataItemNo\":\"91110000710932515R|C01100008|SUPPLY_MERE\"},{\"dataDate\":\"20250406\",\"dataItemNo\":\"91110304102767480H|C01100008|STRIKE_PRICE\",\"dataValue\":5050.00000000},{\"dataDate\":\"20250406\",\"dataItemNo\":\"91130193670310403L|C01100008|STRIKE_PRICE\",\"dataValue\":4950.00000000},{\"dataDate\":\"20250406\",\"dataItemNo\":\"912102117169477344|C01100008|STRIKE_PRICE\",\"dataValue\":4360.00000000},{\"dataDate\":\"20250406\",\"dataItemNo\":\"91370200163576944B|C01100008|STRIKE_PRICE\",\"dataValue\":5050.00000000},{\"dataDate\":\"20250406\",\"dataItemNo\":\"91370321164425136B|C01100008|STRIKE_PRICE\",\"dataValue\":5150.00000000},{\"dataDate\":\"20250406\",\"dataItemNo\":\"91370321164425136B|C01100008|SUPPLY_MERE\",\"dataValue\":400.00000000},{\"dataDate\":\"20250406\",\"dataItemNo\":\"91370500674526498A|C01100008|STRIKE_PRICE\",\"dataValue\":5108.00000000},{\"dataDate\":\"20250406\",\"dataItemNo\":\"91370500674526498A|C01100008|SUPPLY_MERE\",\"dataValue\":175.00000000},{\"dataDate\":\"20250406\",\"dataItemNo\":\"91370521164880008P|C01100008|STRIKE_PRICE\",\"dataValue\":5105.00000000},{\"dataDate\":\"20250406\",\"dataItemNo\":\"C01100008|AMOUNT\",\"dataValue\":199.18000000},{\"dataDate\":\"20250406\",\"dataItemNo\":\"C01100008|AUCTION_MAX_PRICE\",\"dataValue\":5180.00000000},{\"dataDate\":\"20250406\",\"dataItemNo\":\"C01100008|CORTED_VALUE\",\"dataValue\":5180.00000000},{\"dataDate\":\"20250406\",\"dataItemNo\":\"C01100008|EFFECTIVE_STOCK\",\"dataValue\":1481.48640000},{\"dataDate\":\"20250406\",\"dataItemNo\":\"C01100008|OTHER|SUPPLY_MERE\",\"dataValue\":5000.00000000},{\"dataDate\":\"20250406\",\"dataItemNo\":\"C01100008|SUY_DED_DAP\",\"dataValue\":-50.00000000},{\"dataDate\":\"20250406\",\"dataItemNo\":\"HD|LPG|IMPORT_PRICE\",\"dataValue\":5600.00000000},{\"dataDate\":\"20250406\",\"dataItemNo\":\"SD|WJH|DEMANDS\",\"dataValue\":8500.00000000},{\"dataDate\":\"20250406\",\"dataItemNo\":\"SD|WJH|SALES_PRICE\",\"dataValue\":6100.00000000}],\"status\":true}\n", | ||||
|       "数据项查询结果: [{'dataDate': '20250406', 'dataItemNo': '100028046|LISTING_PRICE', 'dataValue': 8114.0}, {'dataDate': '20250406', 'dataItemNo': '91110000710926094P|C01100008|SUPPLY_MERE', 'dataValue': 1300.0}, {'dataDate': '20250406', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}, {'dataDate': '20250406', 'dataItemNo': '91110304102767480H|C01100008|STRIKE_PRICE', 'dataValue': 5050.0}, {'dataDate': '20250406', 'dataItemNo': '91130193670310403L|C01100008|STRIKE_PRICE', 'dataValue': 4950.0}, {'dataDate': '20250406', 'dataItemNo': '912102117169477344|C01100008|STRIKE_PRICE', 'dataValue': 4360.0}, {'dataDate': '20250406', 'dataItemNo': '91370200163576944B|C01100008|STRIKE_PRICE', 'dataValue': 5050.0}, {'dataDate': '20250406', 'dataItemNo': '91370321164425136B|C01100008|STRIKE_PRICE', 'dataValue': 5150.0}, {'dataDate': '20250406', 'dataItemNo': '91370321164425136B|C01100008|SUPPLY_MERE', 'dataValue': 400.0}, {'dataDate': '20250406', 'dataItemNo': '91370500674526498A|C01100008|STRIKE_PRICE', 'dataValue': 5108.0}, {'dataDate': '20250406', 'dataItemNo': '91370500674526498A|C01100008|SUPPLY_MERE', 'dataValue': 175.0}, {'dataDate': '20250406', 'dataItemNo': '91370521164880008P|C01100008|STRIKE_PRICE', 'dataValue': 5105.0}, {'dataDate': '20250406', 'dataItemNo': 'C01100008|AMOUNT', 'dataValue': 199.18}, {'dataDate': '20250406', 'dataItemNo': 'C01100008|AUCTION_MAX_PRICE', 'dataValue': 5180.0}, {'dataDate': '20250406', 'dataItemNo': 'C01100008|CORTED_VALUE', 'dataValue': 5180.0}, {'dataDate': '20250406', 'dataItemNo': 'C01100008|EFFECTIVE_STOCK', 'dataValue': 1481.4864}, {'dataDate': '20250406', 'dataItemNo': 'C01100008|OTHER|SUPPLY_MERE', 'dataValue': 5000.0}, {'dataDate': '20250406', 'dataItemNo': 'C01100008|SUY_DED_DAP', 'dataValue': -50.0}, {'dataDate': '20250406', 'dataItemNo': 'HD|LPG|IMPORT_PRICE', 'dataValue': 5600.0}, {'dataDate': '20250406', 'dataItemNo': 'SD|WJH|DEMANDS', 'dataValue': 8500.0}, {'dataDate': '20250406', 'dataItemNo': 'SD|WJH|SALES_PRICE', 'dataValue': 6100.0}]\n", | ||||
|       "{'dataDate': '20250406', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n", | ||||
|       "添加的行: ['20250406', '', 5180.0, 5180.0, 199.18, '', 8114.0, '', 5050.0, '', 5108.0, '', 5105.0, 5150.0, '', '', '', 1300.0, '', 175.0, 400.0, 5000.0, 8500.0, -50.0, 1481.4864, 4360.0, 5050.0, 4950.0, 5600.0, 6100.0]\n", | ||||
|       "Index(['Date', 'Price', '修正价', '竞拍最高价', '液化石油气|发货量', '昨日布伦特价格', '昨日92#汽油价格',\n", | ||||
|       "       '计划出货量', '青岛石化', '中化工-昌邑', '海科瑞林', '鑫泰石化|液化石油气|成交价', '垦利价格', '汇丰价格',\n", | ||||
|       "       '正丁烷', '异丁烷价格', '顺酐', '中石化供应量', '中化工供应量', '海科供应量', '汇丰供应量', '京博和其他供应量',\n", | ||||
|       "       '烷基化需求量', '昨日烷基化价差', '我司库存', '东北-大连石化', '华北-燕山石化', '华北-石家庄炼化',\n", | ||||
|       "       '昨日原料气价格', '烷基化油销售价格'],\n", | ||||
|       "      dtype='object')\n", | ||||
|       "保存数据时发生错误: 'Date'\n" | ||||
|       "获取的token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhcGlfZGV2IiwidGgiOiI4YTQ1NzdkYmQ5MTk2NzU3NThkNTc5OTlhMWU4OTFmZSIsImx0IjoiYXBpIiwiaXNzIjoiIiwidG0iOiJQQyIsImV4cCI6MTc0NDE5ODg0NywianRpIjoiZmJlMmI4MzA5NzFmNDBhMzhiZTA5YTZjMDEyZjU4YmQifQ.rGLp0UBfeu5JmoYXbGSgCpkrO2QnlAx8hFbbbDDXC8I\n", | ||||
|       "20250409\n", | ||||
|       "       dataDate                      dataItemNo  dataValue\n", | ||||
|       "0    2025-04-01         100028046|LISTING_PRICE     8208.0\n", | ||||
|       "1    2025-04-02         100028046|LISTING_PRICE     8244.0\n", | ||||
|       "2    2025-04-03         100028046|LISTING_PRICE     8244.0\n", | ||||
|       "3    2025-04-04         100028046|LISTING_PRICE     8165.0\n", | ||||
|       "4    2025-04-05         100028046|LISTING_PRICE     8114.0\n", | ||||
|       "..          ...                             ...        ...\n", | ||||
|       "183  2025-04-07  YHQMXBB|C01100008|STRIKE_PRICE     5180.0\n", | ||||
|       "184  2025-04-02  YHQMXBB|C01100008|STRIKE_PRICE     5310.0\n", | ||||
|       "185  2025-04-01  YHQMXBB|C01100008|STRIKE_PRICE     5260.0\n", | ||||
|       "186  2025-04-04  YHQMXBB|C01100008|STRIKE_PRICE     5230.0\n", | ||||
|       "187  2025-04-05  YHQMXBB|C01100008|STRIKE_PRICE     5180.0\n", | ||||
|       "\n", | ||||
|       "[188 rows x 3 columns]\n" | ||||
|      ] | ||||
|     }, | ||||
|     { | ||||
|      "name": "stderr", | ||||
|      "output_type": "stream", | ||||
|      "text": [ | ||||
|       "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_9964\\3261286938.py:614: DeprecationWarning:\n", | ||||
|       "\n", | ||||
|       "The truth value of an empty array is ambiguous. Returning False, but in future this will result in an error. Use `array.size > 0` to check that an array is not empty.\n", | ||||
|       "\n" | ||||
|      ] | ||||
|     }, | ||||
|     { | ||||
|      "name": "stdout", | ||||
|      "output_type": "stream", | ||||
|      "text": [ | ||||
|       "当月数据更新完成\n" | ||||
|      ] | ||||
|     }, | ||||
|     { | ||||
|      "name": "stderr", | ||||
|      "output_type": "stream", | ||||
|      "text": [ | ||||
|       "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_9964\\3261286938.py:255: UserWarning:\n", | ||||
|       "\n", | ||||
|       "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", | ||||
|       "\n", | ||||
|       "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_9964\\3261286938.py:257: UserWarning:\n", | ||||
|       "\n", | ||||
|       "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", | ||||
|       "\n" | ||||
|      ] | ||||
|     }, | ||||
|     { | ||||
|      "name": "stdout", | ||||
|      "output_type": "stream", | ||||
|      "text": [ | ||||
|       "Using matplotlib backend: QtAgg\n", | ||||
|       "%pylab is deprecated, use %matplotlib inline and import the required libraries.\n", | ||||
|       "Populating the interactive namespace from numpy and matplotlib\n", | ||||
|       "Fitting 3 folds for each of 180 candidates, totalling 540 fits\n" | ||||
|      ] | ||||
|     }, | ||||
|     { | ||||
|      "name": "stderr", | ||||
|      "output_type": "stream", | ||||
|      "text": [ | ||||
|       "d:\\ProgramData\\anaconda3\\Lib\\site-packages\\IPython\\core\\magics\\pylab.py:162: UserWarning:\n", | ||||
|       "\n", | ||||
|       "pylab import has clobbered these variables: ['plot', 'random', '__version__', 'datetime']\n", | ||||
|       "`%matplotlib` prevents importing * from pylab and numpy\n", | ||||
|       "\n" | ||||
|      ] | ||||
|     }, | ||||
|     { | ||||
|      "name": "stdout", | ||||
|      "output_type": "stream", | ||||
|      "text": [ | ||||
|       "Date\n", | ||||
|       "2025-04-09    5179.792969\n", | ||||
|       "Name: 日度预测价格, dtype: float32\n", | ||||
|       "预测值: 5179.79\n" | ||||
|      ] | ||||
|     }, | ||||
|     { | ||||
|      "name": "stderr", | ||||
|      "output_type": "stream", | ||||
|      "text": [ | ||||
|       "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_9964\\3261286938.py:203: UserWarning:\n", | ||||
|       "\n", | ||||
|       "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", | ||||
|       "\n", | ||||
|       "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_9964\\3261286938.py:205: UserWarning:\n", | ||||
|       "\n", | ||||
|       "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", | ||||
|       "\n", | ||||
|       "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_9964\\3261286938.py:237: FutureWarning:\n", | ||||
|       "\n", | ||||
|       "Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", | ||||
|       "\n" | ||||
|      ] | ||||
|     } | ||||
|    ], | ||||
| @ -1185,13 +874,12 @@ | ||||
|     "    #         if current_time == \"12:00:00\":\n", | ||||
|     "    #             print(\"执行定时任务\")\n", | ||||
|     "    #             main()\n", | ||||
|     "    #         elif current_time == \"17:45:00\":\n", | ||||
|     "    #         elif current_time == \"20:00:00\":\n", | ||||
|     "    #             start_1()\n", | ||||
|     "    #         time.sleep(1)\n", | ||||
|     "    #     except:\n", | ||||
|     "    #         print(f\"{current_time}执行失败\")\n", | ||||
|     "\n", | ||||
|     "    start_1()\n", | ||||
|     "    # 检测数据准确性, 需要检测放开\n", | ||||
|     "    # check_data(\"100028098|LISTING_PRICE\")\n", | ||||
|     "    # check_data(\"9137070016544622XB|DAY_Yield\")\n" | ||||
| @ -1199,7 +887,7 @@ | ||||
|   }, | ||||
|   { | ||||
|    "cell_type": "code", | ||||
|    "execution_count": 27, | ||||
|    "execution_count": 8, | ||||
|    "metadata": {}, | ||||
|    "outputs": [], | ||||
|    "source": [ | ||||
| @ -1231,7 +919,7 @@ | ||||
|  ], | ||||
|  "metadata": { | ||||
|   "kernelspec": { | ||||
|    "display_name": "Python 3 (ipykernel)", | ||||
|    "display_name": "base", | ||||
|    "language": "python", | ||||
|    "name": "python3" | ||||
|   }, | ||||
|  | ||||
										
											Binary file not shown.
										
									
								
							
		Loading…
	
		Reference in New Issue
	
	Block a user