python拿到股票代码和代码名称等基本信息 您所在的位置:网站首页 epic上市代码 python拿到股票代码和代码名称等基本信息

python拿到股票代码和代码名称等基本信息

2023-03-18 05:35| 来源: 网络整理| 查看: 265

#!/Users/berg/anaconda3/bin/python #本次使用公开免费(baostock接口)提前安装好#http://baostock.com/baostock/index.php/%E9%A6%96%E9%A1%B5 在这里插入图片描述

import baostock as bs import pandas as pd import pymysql import time import datetime

now = datetime.datetime.now() now=str(now) print(now)

conn = pymysql.connect( host=“localhost”, user=“root”,password=“xxxx”, database=“xxxxx”, charset=“utf8”) cursor = conn.cursor() lg = bs.login()

#参数名称 参数描述get_query_all_stock() #code 证券代码 #tradeStatus 交易状态(1:正常交易 0:停牌) #code_name 证券名称 def get_query_all_stock(): #获取 证券代码查询,返回所有股票代码的值 pass rs = bs.query_all_stock(day=“2021-03-08”) print(‘query_all_stock respond error_code:’+rs.error_code) print(‘query_all_stock respond error_msg:’+rs.error_msg) data_list = [] while (rs.error_code == ‘0’) & rs.next(): data_list.append(rs.get_row_data()) return data_list

#参数名称 参数描述query_stock_basic() #code 证券代码 #code_name 证券名称 #ipoDate 上市日期 #outDate 退市日期 #type 证券类型,其中1:股票,2:指数,3:其它 #status 上市状态,其中1:上市,0:退市 def get_query_stock_basic(stockcode): #获取 证券基本资料,返回指定股票代码对应的基本信息 rs = bs.query_stock_basic(code=stockcode) print(‘query_stock_basic respond error_code:’+rs.error_code) print(‘query_stock_basic respond error_msg:’+rs.error_msg) data_list = [] i=0 while (rs.error_code == ‘0’) & rs.next(): data_list.append(rs.get_row_data()) if(len(data_list)==0): return -1 data_list=data_list[0] print(data_list) return data_list

def get_allinfo(): #获取所有股票代码的完整信息 info_all_list=[] stock_all_list=get_query_all_stock() #首先查询所有股票代码的完整列表 i=0 for one in stock_all_list: #对于每一个股票代码继续查询基本资料 #i=i+1 #if i>3: # break stockcode=one[0] tradeStatus=one[1] code_name=one[2] ret_info=get_query_stock_basic(stockcode) if(ret_info==-1): continue print(stockcode,ret_info) code_name2=ret_info[1] ipoDate=ret_info[2] outDate=ret_info[3] s_type=ret_info[4] status=ret_info[5] bz=’’ if ipoDate==’’: ipoDate=‘1900-01-01’ if outDate==’’: outDate=‘2099-12-31’ datestamp=now info_all_list.append((stockcode,tradeStatus,code_name,code_name2,ipoDate,outDate,s_type,status,datestamp,bz)) return info_all_list

def ins_upd_data_to_baostock_code(info_all_list): #拿到所有股票代码信息后,全部落表,有则更新无则插入 print(‘xx’,info_all_list) for onerow in info_all_list: print(‘yy’,onerow) stockcode=onerow[0] tradeStatus=onerow[1] code_name=onerow[2] code_name2=onerow[3] ipoDate=onerow[4] outDate=onerow[5] s_type=onerow[6] status=onerow[7] datestamp=onerow[8] bz=onerow[9] sql_sqlect=“select count(*) from baostock_code where code=’”+stockcode+"’" sql_insert=“insert into baostock_code values(’”+stockcode+"’,’"+tradeStatus+"’,’"+code_name+"’,’"+code_name2+"’,’"+ipoDate+"’,’"+outDate+"’,’"+s_type+"’,’"+status+"’,’"+datestamp+"’,’"+bz+"’)" sql_update=“update baostock_code stock_code set tradeStatus=’”+tradeStatus+"’,code_name=’"+code_name+"’,code_name2=’"+code_name2+"’,ipoDate=’"+ipoDate+"’,outDate=’"+outDate+"’,type=’"+s_type+"’,status=’"+status+"’,datestamp=’"+datestamp+"’,bz=’"+bz+"’ where code=’"+stockcode+"’"

cursor.execute(sql_sqlect) select_result = cursor.fetchall() for tmp_result in select_result: if(tmp_result[0]==0): cursor.execute(sql_insert) else: cursor.execute(sql_update)

all_data=get_allinfo() ins_upd_data_to_baostock_code(all_data)

delete from baostock_code where type !=1 conn.commit() cursor.close() conn.close()

登出系统

bs.logout()



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有