fix: 修改各个数据为方法,增加统一转换某日数据的接口

master
laixingyu 3 years ago
parent 4841cb42fa
commit 77366aa365

@ -0,0 +1,63 @@
import transferIndustrySatistics_python as tis
import transferData_python as td
import transferIndustryData_python as tid
import transferNewrecordData_python as tnd
import pymysql
def main() :
# 数据库A的连接信息腾讯云数据库
db_a_config = {
'host': '124.223.98.178',
'user': 'root',
'password': '1qazse42W3',
'db': 'ry',
'charset': 'utf8mb4',
}
# 数据库B的连接信息腾讯云数据库
db_b_config = {
'host': '124.223.98.178',
'user': 'root',
'password': '1qazse42W3',
'db': 'mojin',
'charset': 'utf8mb4',
}
try:
# 连接数据库A
db_a_conn = pymysql.connect(**db_a_config)
db_a_cursor = db_a_conn.cursor()
# 连接数据库B
db_b_conn = pymysql.connect(**db_b_config)
db_b_cursor = db_b_conn.cursor()
trade_date = '2023-08-09'
#转换数据
td.toTransData(db_a_conn,db_a_cursor,db_b_conn,db_b_cursor,trade_date)
#转换新高数据
tnd.toTransNewRecordData(db_a_conn,db_a_cursor,db_b_conn,db_b_cursor,trade_date)
#转换版块数据
tid.toTransIndustryData(db_a_conn,db_a_cursor,db_b_conn,db_b_cursor,trade_date)
# 转换分析数据
tis.toTransIndustrySatisticsData(db_a_conn,db_a_cursor,db_b_conn,db_b_cursor,trade_date)
except Exception as e:
print(f"出现错误:{e}")
finally:
# 关闭连接
if db_a_cursor:
db_a_cursor.close()
if db_a_conn:
db_a_conn.close()
if db_b_cursor:
db_b_cursor.close()
if db_b_conn:
db_b_conn.close()
if __name__ == "__main__":
main()

@ -1,197 +1,274 @@
#导入动量原始股 #导入动量原始股
import pymysql import pymysql
# #数据库A的连接信息NAS数据库 def toTransData(db_conn_a,dbcursor_a,db_conn_b,dbcursor_b,trade_date):
# db_a_config = { # #数据库A的连接信息NAS数据库
# 'host': '192.168.0.222', # db_a_config = {
# 'user': 'root', # 'host': '192.168.0.222',
# 'password': '1qazse42W3', # 'user': 'root',
# 'db': 'ry', # 'password': '1qazse42W3',
# 'charset': 'utf8mb4', # 'db': 'ry',
# } # 'charset': 'utf8mb4',
# }
# # 数据库B的连接信息NAS数据库
# db_b_config = { # # 数据库B的连接信息NAS数据库
# 'host': '192.168.0.222', # db_b_config = {
# 'user': 'root', # 'host': '192.168.0.222',
# 'password': '1qazse42W3', # 'user': 'root',
# 'db': 'mojin', # 'password': '1qazse42W3',
# 'charset': 'utf8mb4', # 'db': 'mojin',
# } # 'charset': 'utf8mb4',
# }
# 数据库A的连接信息腾讯云数据库
db_a_config = { # 数据库A的连接信息腾讯云数据库
'host': '124.223.98.178', # db_a_config = {
'user': 'root', # 'host': '124.223.98.178',
'password': '1qazse42W3', # 'user': 'root',
'db': 'ry', # 'password': '1qazse42W3',
'charset': 'utf8mb4', # 'db': 'ry',
} # 'charset': 'utf8mb4',
# }
# 数据库B的连接信息腾讯云数据库
db_b_config = { # # 数据库B的连接信息腾讯云数据库
'host': '124.223.98.178', # db_b_config = {
'user': 'root', # 'host': '124.223.98.178',
'password': '1qazse42W3', # 'user': 'root',
'db': 'mojin', # 'password': '1qazse42W3',
'charset': 'utf8mb4', # 'db': 'mojin',
} # 'charset': 'utf8mb4',
# }
try:
# 连接数据库A # try:
db_a_conn = pymysql.connect(**db_a_config) # # 连接数据库A
db_a_cursor = db_a_conn.cursor() # db_a_conn = pymysql.connect(**db_a_config)
# db_a_cursor = db_a_conn.cursor()
# 连接数据库B
db_b_conn = pymysql.connect(**db_b_config) # # 连接数据库B
db_b_cursor = db_b_conn.cursor() # db_b_conn = pymysql.connect(**db_b_config)
# db_b_cursor = db_b_conn.cursor()
stock_basic_map = {} # 连接数据库A
db_a_conn = db_conn_a
#查询交易日数据 8月9日更新数据到8月9日 db_a_cursor = dbcursor_a
sql_trade_qurey = 'select date,week,trade from trade_dates where trade = %s and date > "2023-08-09"'
sql_trade = "trading" # 连接数据库B
db_a_cursor.execute(sql_trade_qurey,sql_trade) db_b_conn = db_conn_b
trading_dates = db_a_cursor.fetchall() db_b_cursor = dbcursor_b
#查询东财基础数据 trans_date = trade_date
industries_map = {}
sql_stockindustry = "select code,name from stock_index where trade_day = '2022-07-01'" stock_basic_map = {}
db_a_cursor.execute(sql_stockindustry)
industries = db_a_cursor.fetchall() #查询交易日数据 8月9日更新数据到8月9日
for industry in industries: sql_trade_qurey = 'select date,week,trade from trade_dates where trade = %s and date > %s'
code,name = industry sql_trade = "trading"
industries_map[name] = (code,name) db_a_cursor.execute(sql_trade_qurey,(sql_trade,trans_date))
trading_dates = db_a_cursor.fetchall()
#查询基础数据
sql_stockbasic = "select code,name,blemind2,blemind3,listdate from stock_basis" #查询东财基础数据
db_a_cursor.execute(sql_stockbasic) industries_map = {}
stock_basic_datas = db_a_cursor.fetchall() sql_stockindustry = "select code,name from stock_index where trade_day = '2022-07-01'"
for row in stock_basic_datas: db_a_cursor.execute(sql_stockindustry)
code,name,blemind2,blemind3,listdate = row industries = db_a_cursor.fetchall()
if code == '数据来源东方财富Choice数据' : for industry in industries:
continue code,name = industry
# print('stock_basic_datas: ',code,name,blemind2) industries_map[name] = (code,name)
stock_basic_map[code] = (code,name,blemind2,blemind3,listdate,industries_map[blemind2][0])
#查询基础数据
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
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('start transfer data ',trading_date , ' data.')
if trading_date == '2023-08-11':
print('break then finish transfer data ',trading_date , ' data.')
break
#查询日交易数据
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()
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的数据并进行关联 for row in trading_dates:
#db_a_cursor.execute('SELECT a1.id, a1.date, a1.user, a2.userName, a2.count FROM a1 JOIN a2 ON a1.id = a2.id') trading_date,week,trade = row
#data_to_transfer = db_a_cursor.fetchall() print('start transfer data ',trading_date , ' data.')
if trading_date == '2023-08-11':
# 删除数据库B中表c的数据可选如果需要覆盖表c的数据 print('break then finish transfer data ',trading_date , ' data.')
# db_b_cursor.execute('DELETE FROM c') break
#查询日交易数据
# 插入数据到数据库B中的表c中 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'
# for row in data_to_transfer: db_a_cursor.execute(sql_stock_query,trading_date)
# id, date, user, userName, count = row datas = db_a_cursor.fetchall()
# sql_insert = f"INSERT INTO c (id, date, user, userName, count) VALUES (%s, %s, %s, %s, %s)" sortIndex = 1
# db_b_cursor.execute(sql_insert, (id, date, user, userName, count)) #遍历数据,并组装数据,转存到目标库中
for stock in datas:
# 提交数据到数据库B中 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
# db_b_conn.commit() business_date = trading_date
sort = sortIndex
print("数据传输完成!") sortIndex +=1
security_code = code
except Exception as e: security_name = stock_basic_map[code][1]
print(f"出现错误:{e}") security_type = ''
if code[0:2] == '30':
finally: security_type = '30'
# 关闭连接 elif code[0:2] == '00':
if db_a_cursor: security_type = 'SZ'
db_a_cursor.close() elif code[0:2] == '60':
if db_a_conn: security_type = 'SH'
db_a_conn.close() elif code[0:3] == '688':
security_type = '688'
if db_b_cursor: # print(security_type,security_name,security_code)
db_b_cursor.close() opening_price = open
if db_b_conn: closing_price = close
db_b_conn.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')
#data_to_transfer = db_a_cursor.fetchall()
# 删除数据库B中表c的数据可选如果需要覆盖表c的数据
# db_b_cursor.execute('DELETE FROM c')
# 插入数据到数据库B中的表c中
# for row in data_to_transfer:
# id, date, user, userName, count = row
# sql_insert = f"INSERT INTO c (id, date, user, userName, count) VALUES (%s, %s, %s, %s, %s)"
# db_b_cursor.execute(sql_insert, (id, date, user, userName, count))
# 提交数据到数据库B中
# db_b_conn.commit()
print("数据传输完成!")
# except Exception as e:
# print(f"出现错误:{e}")
# finally:
# # 关闭连接
# if db_a_cursor:
# db_a_cursor.close()
# if db_a_conn:
# db_a_conn.close()
# if db_b_cursor:
# db_b_cursor.close()
# if db_b_conn:
# db_b_conn.close()
def main():
# #数据库A的连接信息NAS数据库
# db_a_config = {
# 'host': '192.168.0.222',
# 'user': 'root',
# 'password': '1qazse42W3',
# 'db': 'ry',
# 'charset': 'utf8mb4',
# }
# # 数据库B的连接信息NAS数据库
# db_b_config = {
# 'host': '192.168.0.222',
# 'user': 'root',
# 'password': '1qazse42W3',
# 'db': 'mojin',
# 'charset': 'utf8mb4',
# }
# 数据库A的连接信息腾讯云数据库
db_a_config = {
'host': '124.223.98.178',
'user': 'root',
'password': '1qazse42W3',
'db': 'ry',
'charset': 'utf8mb4',
}
# 数据库B的连接信息腾讯云数据库
db_b_config = {
'host': '124.223.98.178',
'user': 'root',
'password': '1qazse42W3',
'db': 'mojin',
'charset': 'utf8mb4',
}
try:
# 连接数据库A
db_a_conn = pymysql.connect(**db_a_config)
db_a_cursor = db_a_conn.cursor()
# 连接数据库B
db_b_conn = pymysql.connect(**db_b_config)
db_b_cursor = db_b_conn.cursor()
trade_day = '2023-08-09'
toTransData(db_a_conn,db_a_cursor,db_b_conn,db_b_cursor,trade_day)
except Exception as e:
print(f"出现错误:{e}")
finally:
# 关闭连接
if db_a_cursor:
db_a_cursor.close()
if db_a_conn:
db_a_conn.close()
if db_b_cursor:
db_b_cursor.close()
if db_b_conn:
db_b_conn.close()
if __name__ == "__main__":
main()

@ -1,169 +1,238 @@
#导入指数数据 #导入指数数据
import pymysql import pymysql
#数据库A的连接信息NAS数据库 def toTransIndustryData(db_conn_a,dbcursor_a,db_conn_b,dbcursor_b,trade_date):
# db_a_config = { #数据库A的连接信息NAS数据库
# 'host': '192.168.0.222', # db_a_config = {
# 'user': 'root', # 'host': '192.168.0.222',
# 'password': '1qazse42W3', # 'user': 'root',
# 'db': 'ry', # 'password': '1qazse42W3',
# 'charset': 'utf8mb4', # 'db': 'ry',
# } # 'charset': 'utf8mb4',
# }
# # 数据库B的连接信息NAS数据库
# db_b_config = { # # 数据库B的连接信息NAS数据库
# 'host': '192.168.0.222', # db_b_config = {
# 'user': 'root', # 'host': '192.168.0.222',
# 'password': '1qazse42W3', # 'user': 'root',
# 'db': 'mojin', # 'password': '1qazse42W3',
# 'charset': 'utf8mb4', # 'db': 'mojin',
# } # 'charset': 'utf8mb4',
# }
# 数据库A的连接信息腾讯云数据库
db_a_config = { # # 数据库A的连接信息腾讯云数据库
'host': '124.223.98.178', # db_a_config = {
'user': 'root', # 'host': '124.223.98.178',
'password': '1qazse42W3', # 'user': 'root',
'db': 'ry', # 'password': '1qazse42W3',
'charset': 'utf8mb4', # 'db': 'ry',
} # 'charset': 'utf8mb4',
# }
# 数据库B的连接信息腾讯云数据库
db_b_config = { # # 数据库B的连接信息腾讯云数据库
'host': '124.223.98.178', # db_b_config = {
'user': 'root', # 'host': '124.223.98.178',
'password': '1qazse42W3', # 'user': 'root',
'db': 'mojin', # 'password': '1qazse42W3',
'charset': 'utf8mb4', # 'db': 'mojin',
} # 'charset': 'utf8mb4',
# }
try:
# 连接数据库A # try:
db_a_conn = pymysql.connect(**db_a_config) # 连接数据库A
db_a_cursor = db_a_conn.cursor() db_a_conn = db_conn_a
db_a_cursor = dbcursor_a
# 连接数据库B
db_b_conn = pymysql.connect(**db_b_config) # 连接数据库B
db_b_cursor = db_b_conn.cursor() db_b_conn = db_conn_b
db_b_cursor = dbcursor_b
stock_basic_map = {}
trans_date = trade_date
#查询交易日数据 更新到8月9日
sql_trade_qurey = 'select date,week,trade from trade_dates where trade = %s and date > "2023-08-09"' stock_basic_map = {}
sql_trade = "trading"
db_a_cursor.execute(sql_trade_qurey,sql_trade) #查询交易日数据 更新到8月9日
trading_dates = db_a_cursor.fetchall() sql_trade_qurey = 'select date,week,trade from trade_dates where trade = %s and date > %s'
sql_trade = "trading"
for row in trading_dates: db_a_cursor.execute(sql_trade_qurey,(sql_trade,trans_date))
trading_date,week,trade = row trading_dates = db_a_cursor.fetchall()
print('start transfer IndustryData ',trading_date , ' data.')
if trading_date == '2023-08-11': for row in trading_dates:
print('break then finished transfer IndustryData',trading_date , ' data.') trading_date,week,trade = row
break print('start transfer IndustryData ',trading_date , ' data.')
#查询日交易数据 if trading_date == '2023-08-11':
sql_stock_query = 'select code,name,trade_day, open,close,high,low,differrange,volume,amount,limitupnum,limitdownnum,suspendnum,risenum,fallnum,flatnum,componentnum,mv,pettm,pettm_mid,liqmv,rcnthigh,rcntlow from stock_index where trade_day = %s' print('break then finished transfer IndustryData',trading_date , ' data.')
db_a_cursor.execute(sql_stock_query,trading_date) break
datas = db_a_cursor.fetchall() #查询日交易数据
sortIndex = 1 sql_stock_query = 'select code,name,trade_day, open,close,high,low,differrange,volume,amount,limitupnum,limitdownnum,suspendnum,risenum,fallnum,flatnum,componentnum,mv,pettm,pettm_mid,liqmv,rcnthigh,rcntlow from stock_index where trade_day = %s'
#遍历数据,并组装数据,转存到目标库中 db_a_cursor.execute(sql_stock_query,trading_date)
for stock_index_data in datas: datas = db_a_cursor.fetchall()
code,name,trade_day, open,close,high,low,differrange,volumn,amount,limitupnum,limitdownnum,suspendnum,risenum,fallnum,flatnum,componentnum,mv,pettm,pettm_mid,liqmv,rcnthigh,rcntlow = stock_index_data sortIndex = 1
business_date = trading_date #遍历数据,并组装数据,转存到目标库中
sort = sortIndex for stock_index_data in datas:
sortIndex +=1 code,name,trade_day, open,close,high,low,differrange,volumn,amount,limitupnum,limitdownnum,suspendnum,risenum,fallnum,flatnum,componentnum,mv,pettm,pettm_mid,liqmv,rcnthigh,rcntlow = stock_index_data
security_code = code business_date = trading_date
security_name = name sort = sortIndex
security_type = 'EI' sortIndex +=1
number_ingredients = componentnum security_code = code
opening_price = open security_name = name
closing_price = close security_type = 'EI'
volume = volumn number_ingredients = componentnum
turnover = amount opening_price = open
total_capitalization = mv closing_price = close
free_capitalization = liqmv volume = volumn
change_percentage = differrange turnover = amount
highest_price = high total_capitalization = mv
lowest_price = low free_capitalization = liqmv
rise_number = risenum change_percentage = differrange
losses_number = fallnum highest_price = high
flat_number = flatnum lowest_price = low
rise_stop_number = limitupnum rise_number = risenum
losses_stop_number = limitdownnum losses_number = fallnum
stop_number = suspendnum flat_number = flatnum
recently_high = rcnthigh rise_stop_number = limitupnum
recently_low = rcntlow losses_stop_number = limitdownnum
pe_ttm= pettm stop_number = suspendnum
pe_center_ttm = pettm_mid recently_high = rcnthigh
# create_time = recently_low = rcntlow
sql_insert = f"INSERT INTO dong_cai_secondary_industry (business_date,sort,security_code,security_name,security_type,number_ingredients,opening_price,closing_price,volume,turnover,total_capitalization,free_capitalization,change_percentage,highest_price,lowest_price,rise_number,losses_number,flat_number,rise_stop_number,losses_stop_number,stop_number,recently_high,recently_low,pe_ttm,pe_center_ttm) 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)" pe_ttm= pettm
db_b_cursor.execute(sql_insert, (business_date,sort,security_code,security_name,security_type,number_ingredients,opening_price,closing_price,volume,turnover,total_capitalization,free_capitalization,change_percentage,highest_price,lowest_price,rise_number,losses_number,flat_number,rise_stop_number,losses_stop_number,stop_number,recently_high,recently_low,pe_ttm,pe_center_ttm)) pe_center_ttm = pettm_mid
#提交数据到数据库B中 # create_time =
db_b_conn.commit() sql_insert = f"INSERT INTO dong_cai_secondary_industry (business_date,sort,security_code,security_name,security_type,number_ingredients,opening_price,closing_price,volume,turnover,total_capitalization,free_capitalization,change_percentage,highest_price,lowest_price,rise_number,losses_number,flat_number,rise_stop_number,losses_stop_number,stop_number,recently_high,recently_low,pe_ttm,pe_center_ttm) 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)"
print('successed transfer ',trading_date , ' data.' ) db_b_cursor.execute(sql_insert, (business_date,sort,security_code,security_name,security_type,number_ingredients,opening_price,closing_price,volume,turnover,total_capitalization,free_capitalization,change_percentage,highest_price,lowest_price,rise_number,losses_number,flat_number,rise_stop_number,losses_stop_number,stop_number,recently_high,recently_low,pe_ttm,pe_center_ttm))
print('\r\n') #提交数据到数据库B中
####dong_cai_secondary_industry db_b_conn.commit()
# `id` bigint NOT NULL AUTO_INCREMENT, print('successed transfer ',trading_date , ' data.' )
# `business_date` date NOT NULL COMMENT '业务日期', print('\r\n')
# `sort` int DEFAULT NULL COMMENT '排名(序号)', ####dong_cai_secondary_industry
# `security_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '证券代码', # `id` bigint NOT NULL AUTO_INCREMENT,
# `security_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '证券名称', # `business_date` date NOT NULL COMMENT '业务日期',
# `security_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '证券类型', # `sort` int DEFAULT NULL COMMENT '排名(序号)',
# `number_ingredients` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '成份个数', # `security_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '证券代码',
# `opening_price` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '开盘价', # `security_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '证券名称',
# `closing_price` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '收盘价', # `security_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '证券类型',
# `volume` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '成交量(股)', # `number_ingredients` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '成份个数',
# `turnover` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '成交额(百万元)', # `opening_price` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '开盘价',
# `total_capitalization` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '总市值(百万元)', # `closing_price` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '收盘价',
# `free_capitalization` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '自由流通市值(百万元)', # `volume` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '成交量(股)',
# `change_percentage` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '涨跌幅(%)', # `turnover` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '成交额(百万元)',
# `highest_price` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '最高价', # `total_capitalization` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '总市值(百万元)',
# `lowest_price` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '最低价', # `free_capitalization` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '自由流通市值(百万元)',
# `rise_number` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '上涨家数', # `change_percentage` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '涨跌幅(%)',
# `losses_number` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '下跌家数', # `highest_price` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '最高价',
# `flat_number` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '平盘家数', # `lowest_price` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '最低价',
# `rise_stop_number` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '涨停家数', # `rise_number` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '上涨家数',
# `losses_stop_number` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '跌停家数', # `losses_number` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '下跌家数',
# `stop_number` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '停牌家数', # `flat_number` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '平盘家数',
# `recently_high` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '近期创历史新高', # `rise_stop_number` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '涨停家数',
# `recently_low` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '近期创历史新低', # `losses_stop_number` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '跌停家数',
# `pe_ttm` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '市盈率PE(TTM)', # `stop_number` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '停牌家数',
# `pe_center_ttm` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '市盈率PE中位值(TTM)', # `recently_high` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '近期创历史新高',
# `create_time` datetime DEFAULT NULL COMMENT '创建时间', # `recently_low` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '近期创历史新低',
# `pe_ttm` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '市盈率PE(TTM)',
##### # `pe_center_ttm` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '市盈率PE中位值(TTM)',
# print(datas) # `create_time` datetime DEFAULT NULL COMMENT '创建时间',
# print(stock_basic_map)
# print(trading_dates) #####
# print(datas)
# 查询数据库A中的数据表a1和a2的数据并进行关联 # print(stock_basic_map)
#db_a_cursor.execute('SELECT a1.id, a1.date, a1.user, a2.userName, a2.count FROM a1 JOIN a2 ON a1.id = a2.id') # print(trading_dates)
#data_to_transfer = db_a_cursor.fetchall()
# 查询数据库A中的数据表a1和a2的数据并进行关联
# 删除数据库B中表c的数据可选如果需要覆盖表c的数据 #db_a_cursor.execute('SELECT a1.id, a1.date, a1.user, a2.userName, a2.count FROM a1 JOIN a2 ON a1.id = a2.id')
# db_b_cursor.execute('DELETE FROM c') #data_to_transfer = db_a_cursor.fetchall()
# 插入数据到数据库B中的表c中 # 删除数据库B中表c的数据可选如果需要覆盖表c的数据
# for row in data_to_transfer: # db_b_cursor.execute('DELETE FROM c')
# id, date, user, userName, count = row
# sql_insert = f"INSERT INTO c (id, date, user, userName, count) VALUES (%s, %s, %s, %s, %s)" # 插入数据到数据库B中的表c中
# db_b_cursor.execute(sql_insert, (id, date, user, userName, count)) # for row in data_to_transfer:
# id, date, user, userName, count = row
# 提交数据到数据库B中 # sql_insert = f"INSERT INTO c (id, date, user, userName, count) VALUES (%s, %s, %s, %s, %s)"
# db_b_conn.commit() # db_b_cursor.execute(sql_insert, (id, date, user, userName, count))
print("数据传输完成!") # 提交数据到数据库B中
# db_b_conn.commit()
except Exception as e:
print(f"出现错误:{e}") print("数据传输完成!")
finally: # except Exception as e:
# 关闭连接 # print(f"出现错误:{e}")
if db_a_cursor:
db_a_cursor.close() # finally:
if db_a_conn: # # 关闭连接
db_a_conn.close() # if db_a_cursor:
# db_a_cursor.close()
if db_b_cursor: # if db_a_conn:
db_b_cursor.close() # db_a_conn.close()
if db_b_conn:
db_b_conn.close() # if db_b_cursor:
# db_b_cursor.close()
# if db_b_conn:
# db_b_conn.close()
def main():
#数据库A的连接信息NAS数据库
# db_a_config = {
# 'host': '192.168.0.222',
# 'user': 'root',
# 'password': '1qazse42W3',
# 'db': 'ry',
# 'charset': 'utf8mb4',
# }
# # 数据库B的连接信息NAS数据库
# db_b_config = {
# 'host': '192.168.0.222',
# 'user': 'root',
# 'password': '1qazse42W3',
# 'db': 'mojin',
# 'charset': 'utf8mb4',
# }
# 数据库A的连接信息腾讯云数据库
db_a_config = {
'host': '124.223.98.178',
'user': 'root',
'password': '1qazse42W3',
'db': 'ry',
'charset': 'utf8mb4',
}
# 数据库B的连接信息腾讯云数据库
db_b_config = {
'host': '124.223.98.178',
'user': 'root',
'password': '1qazse42W3',
'db': 'mojin',
'charset': 'utf8mb4',
}
try:
# 连接数据库A
db_a_conn = pymysql.connect(**db_a_config)
db_a_cursor = db_a_conn.cursor()
# 连接数据库B
db_b_conn = pymysql.connect(**db_b_config)
db_b_cursor = db_b_conn.cursor()
trade_day = '2023-08-09'
toTransIndustryData(db_a_conn,db_a_cursor,db_b_conn,db_b_cursor,trade_day)
except Exception as e:
print(f"出现错误:{e}")
finally:
# 关闭连接
if db_a_cursor:
db_a_cursor.close()
if db_a_conn:
db_a_conn.close()
if db_b_cursor:
db_b_cursor.close()
if db_b_conn:
db_b_conn.close()
if __name__ == "__main__":
main()

@ -248,7 +248,7 @@ def getPreData(dbconfig,dbcursor,date):
return preDataMap return preDataMap
def main(): def toTransIndustrySatisticsData(db_conn_a,dbcursor_a,db_conn_b,dbcursor_b,trade_date):
# #数据库A的连接信息NAS数据库 # #数据库A的连接信息NAS数据库
# db_a_config = { # db_a_config = {
# 'host': '192.168.0.222', # 'host': '192.168.0.222',
@ -267,36 +267,42 @@ def main():
# 'charset': 'utf8mb4', # 'charset': 'utf8mb4',
# } # }
# 数据库A的连接信息腾讯云数据库 # # 数据库A的连接信息腾讯云数据库
db_a_config = { # db_a_config = {
'host': '124.223.98.178', # 'host': '124.223.98.178',
'user': 'root', # 'user': 'root',
'password': '1qazse42W3', # 'password': '1qazse42W3',
'db': 'ry', # 'db': 'ry',
'charset': 'utf8mb4', # 'charset': 'utf8mb4',
} # }
# 数据库B的连接信息腾讯云数据库 # # 数据库B的连接信息腾讯云数据库
db_b_config = { # db_b_config = {
'host': '124.223.98.178', # 'host': '124.223.98.178',
'user': 'root', # 'user': 'root',
'password': '1qazse42W3', # 'password': '1qazse42W3',
'db': 'mojin', # 'db': 'mojin',
'charset': 'utf8mb4', # 'charset': 'utf8mb4',
} # }
try: # try:
# 连接数据库A # # 连接数据库A
db_a_conn = pymysql.connect(**db_a_config) # db_a_conn = pymysql.connect(**db_a_config)
db_a_cursor = db_a_conn.cursor() # db_a_cursor = db_a_conn.cursor()
# # 连接数据库B
# db_b_conn = pymysql.connect(**db_b_config)
# db_b_cursor = db_b_conn.cursor()
db_a_conn = db_conn_a
db_a_cursor = dbcursor_a
# 连接数据库B # 连接数据库B
db_b_conn = pymysql.connect(**db_b_config) db_b_conn = db_conn_b
db_b_cursor = db_b_conn.cursor() db_b_cursor = dbcursor_b
stock_basic_map = {} stock_basic_map = {}
#转换数据的日期(单日) #转换数据的日期(单日)
trans_date = '2023-08-09' trans_date = trade_date
#查询交易日数据 #查询交易日数据
sql_trade_qurey = 'select date,week,trade from trade_dates where trade = %s and date > %s' sql_trade_qurey = 'select date,week,trade from trade_dates where trade = %s and date > %s'
@ -625,6 +631,51 @@ def main():
print("数据传输完成!") print("数据传输完成!")
# except Exception as e:
# print(f"出现错误:{e}")
# finally:
# # 关闭连接
# if db_a_cursor:
# db_a_cursor.close()
# if db_a_conn:
# db_a_conn.close()
# if db_b_cursor:
# db_b_cursor.close()
# if db_b_conn:
# db_b_conn.close()
def main():
# 数据库A的连接信息腾讯云数据库
db_a_config = {
'host': '124.223.98.178',
'user': 'root',
'password': '1qazse42W3',
'db': 'ry',
'charset': 'utf8mb4',
}
# 数据库B的连接信息腾讯云数据库
db_b_config = {
'host': '124.223.98.178',
'user': 'root',
'password': '1qazse42W3',
'db': 'mojin',
'charset': 'utf8mb4',
}
try:
# 连接数据库A
db_a_conn = pymysql.connect(**db_a_config)
db_a_cursor = db_a_conn.cursor()
# 连接数据库B
db_b_conn = pymysql.connect(**db_b_config)
db_b_cursor = db_b_conn.cursor()
trade_day = '2023-08-09'
toTransIndustrySatisticsData(db_a_conn,db_a_cursor,db_b_conn,db_b_cursor,trade_day)
except Exception as e: except Exception as e:
print(f"出现错误:{e}") print(f"出现错误:{e}")
@ -639,7 +690,7 @@ def main():
db_b_cursor.close() db_b_cursor.close()
if db_b_conn: if db_b_conn:
db_b_conn.close() db_b_conn.close()
if __name__ == "__main__": if __name__ == "__main__":
main() main()

@ -1,190 +1,266 @@
#导入新高新低数据 #导入新高新低数据
import pymysql import pymysql
# #数据库A的连接信息NAS数据库 def toTransNewRecordData(db_conn_a,dbcursor_a,db_conn_b,dbcursor_b,trade_date):
# db_a_config = { # #数据库A的连接信息NAS数据库
# 'host': '192.168.0.222', # db_a_config = {
# 'user': 'root', # 'host': '192.168.0.222',
# 'password': '1qazse42W3', # 'user': 'root',
# 'db': 'ry', # 'password': '1qazse42W3',
# 'charset': 'utf8mb4', # 'db': 'ry',
# } # 'charset': 'utf8mb4',
# }
# # 数据库B的连接信息NAS数据库
# db_b_config = { # # 数据库B的连接信息NAS数据库
# 'host': '192.168.0.222', # db_b_config = {
# 'user': 'root', # 'host': '192.168.0.222',
# 'password': '1qazse42W3', # 'user': 'root',
# 'db': 'mojin', # 'password': '1qazse42W3',
# 'charset': 'utf8mb4', # 'db': 'mojin',
# } # 'charset': 'utf8mb4',
# }
# 数据库A的连接信息腾讯云数据库
db_a_config = { # # 数据库A的连接信息腾讯云数据库
'host': '124.223.98.178', # db_a_config = {
'user': 'root', # 'host': '124.223.98.178',
'password': '1qazse42W3', # 'user': 'root',
'db': 'ry', # 'password': '1qazse42W3',
'charset': 'utf8mb4', # 'db': 'ry',
} # 'charset': 'utf8mb4',
# }
# 数据库B的连接信息腾讯云数据库
db_b_config = { # # 数据库B的连接信息腾讯云数据库
'host': '124.223.98.178', # db_b_config = {
'user': 'root', # 'host': '124.223.98.178',
'password': '1qazse42W3', # 'user': 'root',
'db': 'mojin', # 'password': '1qazse42W3',
'charset': 'utf8mb4', # 'db': 'mojin',
} # 'charset': 'utf8mb4',
# }
try:
# 连接数据库A # try:
db_a_conn = pymysql.connect(**db_a_config) # # 连接数据库A
db_a_cursor = db_a_conn.cursor() # db_a_conn = pymysql.connect(**db_a_config)
# db_a_cursor = db_a_conn.cursor()
# 连接数据库B
db_b_conn = pymysql.connect(**db_b_config) # # 连接数据库B
db_b_cursor = db_b_conn.cursor() # db_b_conn = pymysql.connect(**db_b_config)
# db_b_cursor = db_b_conn.cursor()
stock_basic_map = {} # 连接数据库A
db_a_conn = db_conn_a
#查询交易日数据 更新数据到 8月9日 db_a_cursor = dbcursor_a
sql_trade_qurey = 'select date,week,trade from trade_dates where trade = %s and date > "2023-08-09"'
sql_trade = "trading" # 连接数据库B
db_a_cursor.execute(sql_trade_qurey,sql_trade) db_b_conn = db_conn_b
trading_dates = db_a_cursor.fetchall() db_b_cursor = dbcursor_b
#查询东财基础数据 trans_date = trade_date
industries_map = {}
sql_stockindustry = "select code,name from stock_index where trade_day = '2022-07-01'" stock_basic_map = {}
db_a_cursor.execute(sql_stockindustry)
industries = db_a_cursor.fetchall() #查询交易日数据 更新数据到 8月9日
for industry in industries: sql_trade_qurey = 'select date,week,trade from trade_dates where trade = %s and date > %s'
code,name = industry sql_trade = "trading"
industries_map[name] = (code,name) db_a_cursor.execute(sql_trade_qurey,(sql_trade,trade_date))
trading_dates = db_a_cursor.fetchall()
#查询基础数据
sql_stockbasic = "select code,name,blemind2,blemind3,listdate from stock_basis" #查询东财基础数据
db_a_cursor.execute(sql_stockbasic) industries_map = {}
stock_basic_datas = db_a_cursor.fetchall() sql_stockindustry = "select code,name from stock_index where trade_day = '2022-07-01'"
for row in stock_basic_datas: db_a_cursor.execute(sql_stockindustry)
code,name,blemind2,blemind3,listdate = row industries = db_a_cursor.fetchall()
if code == '数据来源东方财富Choice数据' : for industry in industries:
continue code,name = industry
# print('stock_basic_datas: ',code,name,blemind2) industries_map[name] = (code,name)
stock_basic_map[code] = (code,name,blemind2,blemind3,listdate,industries_map[blemind2][0])
#查询基础数据
sql_stockbasic = "select code,name,blemind2,blemind3,listdate from stock_basis"
for row in trading_dates: db_a_cursor.execute(sql_stockbasic)
trading_date,week,trade = row stock_basic_datas = db_a_cursor.fetchall()
print('start transfer newrecord data ',trading_date , ' data.') for row in stock_basic_datas:
if trading_date == '2023-08-11': code,name,blemind2,blemind3,listdate = row
print('break then finished transfer newrecord ',trading_date , ' data.') if code == '数据来源东方财富Choice数据' :
break continue
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' # print('stock_basic_datas: ',code,name,blemind2)
db_a_cursor.execute(sql_stock_query,trading_date) stock_basic_map[code] = (code,name,blemind2,blemind3,listdate,industries_map[blemind2][0])
datas = db_a_cursor.fetchall()
stocks_map = {}
#遍历数据,并组装数据,转存到目标库中
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
stocks_map[code] = (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)
#查询日交易数据
sql_stock_query = 'select code,trade_day, isHigh,isLow from stocks_new_record where trade_day = %s'
db_a_cursor.execute(sql_stock_query,trading_date)
datas = db_a_cursor.fetchall()
#遍历数据,并组装数据,转存到目标库中
for stock_new_record in datas:
code,trade_day, isHigh,isLow = stock_new_record
business_date = trading_date
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 = stocks_map[code][2]
closing_price = stocks_map[code][3]
highest_price = stocks_map[code][4]
highest_price_of_range = trading_date
change_percentage = stocks_map[code][8]
volume = stocks_map[code][10]
recently_high = isHigh
dong_cai_industry_index_level2 = stock_basic_map[code][2]
day_on_market = stocks_map[code][9]
is_st_stock=''
hit_low_recently = isLow
lowest_price_range = ''
is_star_st_stock = ''
# create_time =
sql_insert = f"INSERT INTO high_low_of_three_hundred (business_date,security_code,security_name,security_type,opening_price,closing_price,highest_price,highest_price_of_range,change_percentage,volume,recently_high,dong_cai_industry_index_level2,day_on_market,is_st_stock,hit_low_recently,lowest_price_range,is_star_st_stock) VALUES ( %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,security_code,security_name,security_type,opening_price,closing_price,highest_price,highest_price_of_range,change_percentage,volume,recently_high,dong_cai_industry_index_level2,day_on_market,is_st_stock,hit_low_recently,lowest_price_range,is_star_st_stock))
#提交数据到数据库B中
db_b_conn.commit()
print('successed transfer ',trading_date , ' data.' )
print('\r\n')
####high_low_of_three_hundred
# `id` bigint(0) NOT NULL AUTO_INCREMENT,
# `business_date` date NOT 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,
# `highest_price` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
# `highest_price_of_range` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
# `change_percentage` 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 '成交量(股)',
# `recently_high` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '近期创阶段新高最新[近N日内]',
# `dong_cai_industry_index_level2` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '东财行业指数2级',
# `day_on_market` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '上市天数',
# `is_st_stock` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '是否为ST股票 1-是 0-否',
# `hit_low_recently` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
# `lowest_price_range` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
# `is_star_st_stock` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '是否为*ST股票 1-是 0-否',
# `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
#####
# print(datas)
# print(stock_basic_map)
# print(trading_dates)
# 查询数据库A中的数据表a1和a2的数据并进行关联 for row in trading_dates:
#db_a_cursor.execute('SELECT a1.id, a1.date, a1.user, a2.userName, a2.count FROM a1 JOIN a2 ON a1.id = a2.id') trading_date,week,trade = row
#data_to_transfer = db_a_cursor.fetchall() print('start transfer newrecord data ',trading_date , ' data.')
if trading_date == '2023-08-11':
# 删除数据库B中表c的数据可选如果需要覆盖表c的数据 print('break then finished transfer newrecord ',trading_date , ' data.')
# db_b_cursor.execute('DELETE FROM c') break
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'
# 插入数据到数据库B中的表c中 db_a_cursor.execute(sql_stock_query,trading_date)
# for row in data_to_transfer: datas = db_a_cursor.fetchall()
# id, date, user, userName, count = row stocks_map = {}
# sql_insert = f"INSERT INTO c (id, date, user, userName, count) VALUES (%s, %s, %s, %s, %s)" #遍历数据,并组装数据,转存到目标库中
# db_b_cursor.execute(sql_insert, (id, date, user, userName, count)) 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
# 提交数据到数据库B中 stocks_map[code] = (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)
# db_b_conn.commit()
#查询日交易数据
print("数据传输完成!") sql_stock_query = 'select code,trade_day, isHigh,isLow from stocks_new_record where trade_day = %s'
db_a_cursor.execute(sql_stock_query,trading_date)
except Exception as e: datas = db_a_cursor.fetchall()
print(f"出现错误:{e}") #遍历数据,并组装数据,转存到目标库中
for stock_new_record in datas:
finally: code,trade_day, isHigh,isLow = stock_new_record
# 关闭连接 business_date = trading_date
if db_a_cursor: security_code = code
db_a_cursor.close() security_name = stock_basic_map[code][1]
if db_a_conn: security_type = ''
db_a_conn.close() if code[0:2] == '30':
security_type = '30'
if db_b_cursor: elif code[0:2] == '00':
db_b_cursor.close() security_type = 'SZ'
if db_b_conn: elif code[0:2] == '60':
db_b_conn.close() security_type = 'SH'
elif code[0:3] == '688':
security_type = '688'
# print(security_type,security_name,security_code)
opening_price = stocks_map[code][2]
closing_price = stocks_map[code][3]
highest_price = stocks_map[code][4]
highest_price_of_range = trading_date
change_percentage = stocks_map[code][8]
volume = stocks_map[code][10]
recently_high = isHigh
dong_cai_industry_index_level2 = stock_basic_map[code][2]
day_on_market = stocks_map[code][9]
is_st_stock=''
hit_low_recently = isLow
lowest_price_range = ''
is_star_st_stock = ''
# create_time =
sql_insert = f"INSERT INTO high_low_of_three_hundred (business_date,security_code,security_name,security_type,opening_price,closing_price,highest_price,highest_price_of_range,change_percentage,volume,recently_high,dong_cai_industry_index_level2,day_on_market,is_st_stock,hit_low_recently,lowest_price_range,is_star_st_stock) VALUES ( %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,security_code,security_name,security_type,opening_price,closing_price,highest_price,highest_price_of_range,change_percentage,volume,recently_high,dong_cai_industry_index_level2,day_on_market,is_st_stock,hit_low_recently,lowest_price_range,is_star_st_stock))
#提交数据到数据库B中
db_b_conn.commit()
print('successed transfer ',trading_date , ' data.' )
print('\r\n')
####high_low_of_three_hundred
# `id` bigint(0) NOT NULL AUTO_INCREMENT,
# `business_date` date NOT 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,
# `highest_price` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
# `highest_price_of_range` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
# `change_percentage` 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 '成交量(股)',
# `recently_high` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '近期创阶段新高最新[近N日内]',
# `dong_cai_industry_index_level2` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '东财行业指数2级',
# `day_on_market` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '上市天数',
# `is_st_stock` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '是否为ST股票 1-是 0-否',
# `hit_low_recently` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
# `lowest_price_range` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
# `is_star_st_stock` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '是否为*ST股票 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')
#data_to_transfer = db_a_cursor.fetchall()
# 删除数据库B中表c的数据可选如果需要覆盖表c的数据
# db_b_cursor.execute('DELETE FROM c')
# 插入数据到数据库B中的表c中
# for row in data_to_transfer:
# id, date, user, userName, count = row
# sql_insert = f"INSERT INTO c (id, date, user, userName, count) VALUES (%s, %s, %s, %s, %s)"
# db_b_cursor.execute(sql_insert, (id, date, user, userName, count))
# 提交数据到数据库B中
# db_b_conn.commit()
print("数据传输完成!")
# except Exception as e:
# print(f"出现错误:{e}")
# finally:
# # 关闭连接
# if db_a_cursor:
# db_a_cursor.close()
# if db_a_conn:
# db_a_conn.close()
# if db_b_cursor:
# db_b_cursor.close()
# if db_b_conn:
# db_b_conn.close()
def main():
# #数据库A的连接信息NAS数据库
# db_a_config = {
# 'host': '192.168.0.222',
# 'user': 'root',
# 'password': '1qazse42W3',
# 'db': 'ry',
# 'charset': 'utf8mb4',
# }
# # 数据库B的连接信息NAS数据库
# db_b_config = {
# 'host': '192.168.0.222',
# 'user': 'root',
# 'password': '1qazse42W3',
# 'db': 'mojin',
# 'charset': 'utf8mb4',
# }
# 数据库A的连接信息腾讯云数据库
db_a_config = {
'host': '124.223.98.178',
'user': 'root',
'password': '1qazse42W3',
'db': 'ry',
'charset': 'utf8mb4',
}
# 数据库B的连接信息腾讯云数据库
db_b_config = {
'host': '124.223.98.178',
'user': 'root',
'password': '1qazse42W3',
'db': 'mojin',
'charset': 'utf8mb4',
}
try:
# 连接数据库A
db_a_conn = pymysql.connect(**db_a_config)
db_a_cursor = db_a_conn.cursor()
# 连接数据库B
db_b_conn = pymysql.connect(**db_b_config)
db_b_cursor = db_b_conn.cursor()
trade_day = '2023-08-09'
toTransNewRecordData(db_a_conn,db_a_cursor,db_b_conn,db_b_cursor,trade_day)
except Exception as e:
print(f"出现错误:{e}")
finally:
# 关闭连接
if db_a_cursor:
db_a_cursor.close()
if db_a_conn:
db_a_conn.close()
if db_b_cursor:
db_b_cursor.close()
if db_b_conn:
db_b_conn.close()
if __name__ == "__main__":
main()
Loading…
Cancel
Save