额不找接口,就是懈怠了。。。。
数据库表弄好了,但是返回来写又出问题了。。检查了半点才发现是拼写错误。。。。
混乱的思路一直没有理清,所以建好的表结构发现也还是不能够马上用。。。。。。。。。。。。
似乎方法出问题了。
下面换个思路吧:每个练习学习的文件明确一个目标,不把所有的都放进来,这样也比较好分离错误。
更新基础信息表,通过tushare.pro_api的的通用接口获得:
# coding:utf-8
import tushare as t
from sqlalchemy import create_engine
db_connect =create_engine(‘mysql+pymysql://root:Z**********@localhost/9arses‘)
#engine = create_engine(‘sqlite://‘, echo=False)
# 下面尝试使用通用模板获取数据
api = t.pro_api(‘ccf4650d0fa9ca2691a4e44c2715a2658cb1d84356be983a6a8550a6‘)
p = t.pro_api()
sdata = p.query("stock_basic",
fields=‘ts_code,symbol,name,area,industry,fullname,enname,market,exchange,curr_type,list_status,list_date,delist_date,is_hs‘
)
bsdata.to_csv(‘bsdata.csv‘, sep=‘,‘, header=True, index=True)
bsdata.to_sql(‘c_gp_list‘, db_connect,if_exists=‘append‘,index=True,index_label=None,dtype=None,chunksize=None)
#清单
trade_cal = p.query("trade_cal",fields=‘exchange,cal_date,is_open,pretrade_date‘)
trade_cal.to_csv(‘trade_cal.csv‘, sep=‘,‘, header=True, index=True)
trade_cal.to_sql(‘c_gp_jy_date‘, db_connect,if_exists=‘append‘,index=True,index_label=None,dtype=None,chunksize=None)
#交易日历
stock_company = p.query("stock_company",fields=‘ts_code,exchange,chairman,manager,secretary,reg_capital,setup_date,province,city,introduction,website,email,office,employees,main_business,business_scope‘)
stock_company.to_csv(‘stock_company.csv‘, sep=‘,‘, header=True, index=True)
stock_company.to_sql(‘c_gp_info‘, db_connect,if_exists=‘append‘,index=True,index_label=None,dtype=None,chunksize=None)
#股票基本信息
hs_const = p.hs_const(hs_type=‘SH‘)
hs_const.to_csv(‘hs_const.csv‘, sep=‘,‘, header=True, index=True)
hs_const.to_sql(‘c_gp_type‘, db_connect,if_exists=‘append‘,index=True,index_label=None,dtype=None,chunksize=None)
p.hs_const(hs_type=‘SZ‘)
hs_const.to_csv(‘hsz_const.csv‘, sep=‘,‘, header=True, index=True)
hs_const.to_sql(‘c_gp_type‘, db_connect,if_exists=‘append‘,index=True,index_label=None,dtype=None,chunksize=None)
#沪股通成分股
namechange = p.query("namechange",fields=‘ts_code,name,start_date,end_date,ann_date,change_reason‘)
namechange.to_csv(‘namechange.csv‘, sep=‘,‘, header=True, index=True)
namechange.to_sql(‘c_gp_name_his‘, db_connect,if_exists=‘append‘,index=True,index_label=None,dtype=None,chunksize=None)
#股票曾用名
new_share = p.query("new_share",fields=‘ts_code,sub_code,name,ipo_date,issue_date,amount,market_amount,price,pe,limit_amount,funds,ballot‘)
new_share.to_csv(‘new_share.csv‘, sep=‘,‘, header=True, index=True)
new_share.to_sql(‘c_gp_ipo‘, db_connect,if_exists=‘append‘,index=True,index_label=None,dtype=None,chunksize=None)
#IPO
对于这些基础信息数据,数据量不大,每次连接直接更新即可。
另外代码重复很多,可以考虑for语句完成。
主要有三个语句,第一个取数据,第二个写入csv文件(比较用,可省略),第三个写入数据库
第一个取数语句主要有两个参数 接口名称、字段列表,都是字符串格式的。
第三个写入sql的表名,其余基本一致。
那就是三个字符串为一组的数据。
研究一下,用哪种数据类型,
复习一下string、list、dict、truple、set
以及学习一下for语句。
原文地址:https://www.cnblogs.com/marses/p/9998760.html