From 02134380f8a2512c43eafd779dbd6dc8fc241cf5 Mon Sep 17 00:00:00 2001 From: laixingyu Date: Mon, 24 Jul 2023 01:43:47 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=AE=8C=E6=88=90=E5=8A=A8=E9=87=8F?= =?UTF-8?q?=E8=A1=A8=E6=95=B0=E6=8D=AE=E8=BD=AC=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- transferData_python.py | 99 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 93 insertions(+), 6 deletions(-) diff --git a/transferData_python.py b/transferData_python.py index 71f2e12..1c14b75 100644 --- a/transferData_python.py +++ b/transferData_python.py @@ -35,24 +35,111 @@ try: db_a_cursor.execute(sql_trade_qurey,sql_trade) trading_dates = db_a_cursor.fetchall() + #查询东财基础数据 + industries_map = {} + sql_stockindustry = "select code,name from stock_index where trade_day = '2022-07-01'" + db_a_cursor.execute(sql_stockindustry) + industries = db_a_cursor.fetchall() + for industry in industries: + code,name = industry + industries_map[name] = (code,name) + #查询基础数据 sql_stockbasic = "select code,name,blemind2,blemind3,listdate from stock_basis" db_a_cursor.execute(sql_stockbasic) stock_basic_datas = db_a_cursor.fetchall() for row in stock_basic_datas: code,name,blemind2,blemind3,listdate = row - stock_basic_map[code] = (code,name,blemind2,blemind3,listdate) + if code == '数据来源:东方财富Choice数据' : + continue + # print('stock_basic_datas: ',code,name,blemind2) + stock_basic_map[code] = (code,name,blemind2,blemind3,listdate,industries_map[blemind2][0]) + for row in trading_dates: trading_date,week,trade = row - print(trading_date) + print('start transfer ',trading_date , ' data.') #查询日交易数据 - sql_stock_query = 'select code ,trade_day, open,close,high,low,islimit,isdrop,differrange,trade_days,volumn,amount,differrange10,differrange20,differrange60,avg_volume20,freefloat_market_value,total_market_value,agencies_hold from stocks where trade_day = %s' + sql_stock_query = 'select code,trade_day, open,close,high,low,islimit,isdrop,differrange,trade_days,volumn,amount,differrange10,differrange20,differrange60,avg_volume20,freefloat_market_value,total_market_value,agencies_hold from stocks where trade_day = %s' db_a_cursor.execute(sql_stock_query,trading_date) datas = db_a_cursor.fetchall() - print(datas) - print(stock_basic_map) - print(trading_dates) + sortIndex = 1 + #遍历数据,并组装数据,转存到目标库中 + for stock in datas: + code,trade_day, open,close,high,low,islimit,isdrop,differrange,trade_days,volumn,amount,differrange10,differrange20,differrange60,avg_volume20,freefloat_market_value,total_market_value,agencies_hold = stock + business_date = trading_date + sort = sortIndex + sortIndex +=1 + security_code = code + security_name = stock_basic_map[code][1] + security_type = '' + if code[0:2] == '30': + security_type = '30' + elif code[0:2] == '00': + security_type = 'SZ' + elif code[0:2] == '60': + security_type = 'SH' + elif code[0:3] == '688': + security_type = '688' + # print(security_type,security_name,security_code) + opening_price = open + closing_price = close + highest_price = high + lowest_price = low + rise_losses_current_day = differrange + dong_cai_industry_index_level2 = stock_basic_map[code][2] + dong_cai_industry_index_level3 = stock_basic_map[code][3] + range_rise_losses20 = differrange20 + range_rise_losses10 = differrange10 + range_rise_losses60 = differrange60 + initial_listing_date = stock_basic_map[code][4] + number_days_available = trade_days + volume = volumn + turnover = amount + dong_cai_industry_index_code2 = stock_basic_map[code][5] + free_capitalization = freefloat_market_value + average_volume_day20 = avg_volume20 + total_institutional_positions = agencies_hold + rise_stop = islimit + losses_stop = isdrop + # create_time = + sql_insert = f"INSERT INTO original_issue_stock (business_date,sort,security_code,security_name,security_type,opening_price,closing_price,highest_price,lowest_price,rise_losses_current_day,dong_cai_industry_index_level2,dong_cai_industry_index_level3,range_rise_losses20,range_rise_losses10,range_rise_losses60,initial_listing_date,number_days_available,volume,turnover,dong_cai_industry_index_code2,free_capitalization,average_volume_day20,total_institutional_positions,rise_stop,losses_stop) VALUES (%s, %s, %s, %s, %s, %s, %s,%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)" + db_b_cursor.execute(sql_insert, (business_date,sort,security_code,security_name,security_type,opening_price,closing_price,highest_price,lowest_price,rise_losses_current_day,dong_cai_industry_index_level2,dong_cai_industry_index_level3,range_rise_losses20,range_rise_losses10,range_rise_losses60,initial_listing_date,number_days_available,volume,turnover,dong_cai_industry_index_code2,free_capitalization,average_volume_day20,total_institutional_positions,rise_stop,losses_stop)) + #提交数据到数据库B中 + db_b_conn.commit() + print('successed transfer ',trading_date , ' data.' ) + print('\r\n') + ####original_issue_stock +# `business_date` date NOT NULL COMMENT '业务日期', +# `sort` int(0) NULL DEFAULT NULL COMMENT '排名', +# `security_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '证券代码', +# `security_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '证券名称', +# `security_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '证券类型', +# `opening_price` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '开盘价', +# `closing_price` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '收盘价', +# `highest_price` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '最高价', +# `lowest_price` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '最低价', +# `rise_losses_current_day` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '当日涨跌幅', +# `dong_cai_industry_index_level2` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '东财行业指数2级', +# `dong_cai_industry_index_level3` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '东财行业指数3级', +# `range_rise_losses20` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '20日区间涨跌幅', +# `range_rise_losses10` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '10日区间涨跌幅', +# `range_rise_losses60` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '60日区间涨跌幅', +# `initial_listing_date` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '首发上市日期', +# `number_days_available` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '可交易日数', +# `volume` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '成交量', +# `turnover` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '成交额', +# `dong_cai_industry_index_code2` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '所属东财行业指数代码[行业类别]2级', +# `free_capitalization` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '自由流通市值', +# `average_volume_day20` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '20日区间平均成交量', +# `total_institutional_positions` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '机构持仓合计', +# `rise_stop` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '是否涨停 1-是 0-否', +# `losses_stop` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '是否跌停 1-是 0-否', +# `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', +##### + # print(datas) + # print(stock_basic_map) + # print(trading_dates) # 查询数据库A中的数据表a1和a2的数据,并进行关联 #db_a_cursor.execute('SELECT a1.id, a1.date, a1.user, a2.userName, a2.count FROM a1 JOIN a2 ON a1.id = a2.id')