def get_stock_code_set(): """ # 通过接口获取股票代码 :param date_fetch: :return: """ # date_fetch_str = date_fetch.strftime(STR_FORMAT_DATE) stock_df = pro.stock_basic(exchange='', is_hs='S', fields='ts_code,name') if stock_df is None: # logging.warning('%s 获取股票代码失败', date_fetch_str) return None stock_count = stock_df.shape[0] # logging.info('get %d stocks on %s', stock_count, date_fetch_str) return set(stock_df['ts_code'])
def import_tushare_stock_info(chain_param=None, refresh=False): """ 获取全市场股票代码及名称 """ table_name = 'tushare_stock_info' logging.info("更新 %s 开始", table_name) has_table = engine_md.has_table(table_name) tushare_indicator_param_list = [ ('ts_code', String(20)), ('symbol', String(20)), ('name', String(40)), ('area', String(100)), ('industry', String(200)), ('fullname', String(100)), ('enname', String(200)), ('market', String(100)), ('exchange', String(20)), ('curr_type', String(20)), ('list_status', String(20)), ('list_date', Date), ('delist_date', Date), ('is_hs', String(20)), ] # # 获取列属性名,以逗号进行分割 "ipo_date,trade_code,mkt,exch_city,exch_eng" param = ",".join([key for key, _ in tushare_indicator_param_list]) # 设置 dtype dtype = {key: val for key, val in tushare_indicator_param_list} dtype['ts_code'] = String(20) # 数据提取 stock_info_all_df = pro.stock_basic( exchange='', fields= 'ts_code,symbol,name,area,industry,fullname,enname,market,exchange,curr_type,list_status,list_date,delist_date,is_hs,is_hs,is_hs' ) logging.info('%s stock data will be import', stock_info_all_df.shape[0]) data_count = bunch_insert_on_duplicate_update(stock_info_all_df, table_name, engine_md, dtype=dtype, myisam_if_create_table=True, primary_keys=['ts_code'], schema=config.DB_SCHEMA_MD) logging.info("更新 %s 完成 存量数据 %d 条", table_name, data_count)
def import_tushare_stock_info(chain_param=None, refresh=False): """ 获取全市场股票代码及名称 """ table_name = 'tushare_stock_info' logging.info("更新 %s 开始", table_name) has_table = engine_md.has_table(table_name) wind_indicator_param_list = [ ('ts_code', String(20)), ('symbol', DOUBLE), ('list_date', Date), ('delist_date', Date), ('name', String(30)), ('fullname', String(100)), ('enname', String(200)), ('exchange_id', String(30)), ('list_status', String(10)), ('is_hs', String(10)), ] # # 获取列属性名,以逗号进行分割 "ipo_date,trade_code,mkt,exch_city,exch_eng" param = ",".join([key for key, _ in wind_indicator_param_list]) # 设置 dtype dtype = {key: val for key, val in wind_indicator_param_list} dtype['ts_code'] = String(20) # 数据提取 stock_info_all_df = pro.stock_basic( exchange_id='', fields= 'ts_code,symbol,name,fullname,enname,exchange_id,curr_type,list_date,list_status,delist_date,is_hs' ) logging.info('%s stock data will be import', stock_info_all_df.shape[0]) data_count = bunch_insert_on_duplicate_update(stock_info_all_df, table_name, engine_md, dtype=dtype) logging.info("更新 %s 完成 存量数据 %d 条", table_name, data_count) if not has_table and engine_md.has_table(table_name): alter_table_2_myisam(engine_md, [table_name]) build_primary_key([table_name])