From 8535f56dbf6e410b4a09f02f95d4d49bcc8753f2 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期一, 27 三月 2023 18:58:54 +0800 Subject: [PATCH] 看盘页面数据调整 --- third_data/hot_block_data_process.py | 61 ++++++++++++++++++------------ 1 files changed, 36 insertions(+), 25 deletions(-) diff --git a/third_data/hot_block_data_process.py b/third_data/hot_block_data_process.py index 11afd89..6ff6a26 100644 --- a/third_data/hot_block_data_process.py +++ b/third_data/hot_block_data_process.py @@ -16,10 +16,12 @@ class XGBHotBlockDataManager: total_datas = [] - __last_datas={} + __last_datas = {} + latest_datas = None @classmethod - def save(cls,day, datas): + def save(cls, day, datas): + cls.latest_datas = datas mysqldb = mysql_data.Mysqldb() # 缁熻浠g爜鎵�灞炴澘鍧� code_block_dict = {} @@ -35,15 +37,22 @@ code = code_info[0].split(".")[0] _id = f"{day}_{data[0]}_{code}" - result = mysqldb.select_one("select count(*) from xgb_hot_block where _id='{}'".format(_id)) - if not result[0]: + result = mysqldb.select_one("select * from xgb_hot_block where _id='{}'".format(_id)) + limit_up_time = code_info[4] + if len(limit_up_time) <= 6: + limit_up_time = '' + if not result: mysqldb.execute( - f"insert into xgb_hot_block(_id,_day,_block_name,_code,_limit_up_time,_price,_rate,_update_time) values('{_id}','{day}','{data[0]}','{code}','{code_info[4]}','{code_info[2]}','{code_info[3]}',now())") + f"insert into xgb_hot_block(_id,_day,_block_name,_code,_limit_up_time,_price,_rate,_update_time,_first_limit_up_time) values('{_id}','{day}','{data[0]}','{code}','{code_info[4]}','{code_info[2]}','{code_info[3]}',now(),'{limit_up_time}')") else: # 濡傛灉涓婃鐨勬暟鎹拰杩欐涓�鏍峰氨涓嶆洿鏂帮紝鍚﹀垯闇�瑕佹洿鏂版暟鎹� if cls.__last_datas.get(_id) != code_info: - # 鏇存柊 - mysqldb.execute(f"update xgb_hot_block set _limit_up_time='{code_info[4]}',_price='{code_info[2]}',_rate='{code_info[3]}' where _id='{_id}'") + mysqldb.execute( + f"update xgb_hot_block set _limit_up_time='{code_info[4]}',_price='{code_info[2]}',_rate='{code_info[3]}',_update_time=now() where _id='{_id}'") + if (not result[8] or len(result[8]) <= 6) and len(limit_up_time) >= 6: + mysqldb.execute( + f"update xgb_hot_block set _first_limit_up_time='{limit_up_time}',_update_time=now() where _id='{_id}'") + cls.__last_datas[_id] = code_info # 鑾峰彇鍘熸潵鐨勪唬鐮佹墍灞炴澘鍧�,鍒犻櫎涔嬪墠閿欒鐨勬澘鍧� old_datas = XGBHotBlockDataManager.list_by_code(code, day) @@ -85,37 +94,37 @@ return None limit_up_codes_set = set() - for block in latest_datas: - if block[0] == target_block: - for code_data in block[2]: - if len(code_data[4]) > 6: - limit_up_codes_set.add(code_data[0].split('.')[0]) + if XGBHotBlockDataManager.latest_datas: + for block in XGBHotBlockDataManager.latest_datas: + if block[0] == target_block: + for code_data in block[2]: + if len(code_data[4]) > 6: + limit_up_codes_set.add(code_data[0].split('.')[0]) limit_up_codes_set.discard(code) limit_up_count = len(limit_up_codes_set) total_datas = XGBHotBlockDataManager.total_datas - codes = set() + break_codes = set() for data in total_datas: block = data[2] if block != target_block: continue code = data[3] limit_up_time = data[4] - if len(limit_up_time) > 6: - codes.add(code) - codes.discard(code) - codes.difference(limit_up_codes_set) + first_limit_up_time = data[8] + if len(limit_up_time) <= 6 and first_limit_up_time and len(first_limit_up_time) > 6: + break_codes.add(code) + # 鎺掗櫎鑷繁 + break_codes.discard(code) + # 鎺掗櫎宸茬粡娑ㄥ仠鐨勪唬鐮� + break_codes = break_codes.difference(limit_up_codes_set) # 鐐告澘涓暟 - break_size = len(codes) - return (limit_up_count,break_size) - - -latest_datas = [] + break_size = len(break_codes) + return target_block, limit_up_count, break_size # 淇濆瓨鏁版嵁 def save_datas(day, datas): - latest_datas = datas XGBHotBlockDataManager.save(day, datas) code_block_dict = {} block_codes_dict = {} @@ -167,5 +176,7 @@ if __name__ == "__main__": - XGBHotBlockDataManager.total_datas=XGBHotBlockDataManager.list_all("2023-03-23") - get_info('002230') + # XGBHotBlockDataManager.total_datas=XGBHotBlockDataManager.list_all("2023-03-23") + # get_info('002230') + codes = set([1, 2, 3, 4]) + print(codes.difference(set([1, 2]))) -- Gitblit v1.8.0