python的學習之路===小白學編程(3)
阿新 • • 發佈:2018-11-22
都是 csv文件 size ffi business cal dict stock status 額不找接口,就是懈怠了。。。。
數據庫表弄好了,但是返回來寫又出問題了。。檢查了半點才發現是拼寫錯誤。。。。
混亂的思路一直沒有理清,所以建好的表結構發現也還是不能夠馬上用。。。。。。。。。。。。
似乎方法出問題了。
下面換個思路吧:每個練習學習的文件明確一個目標,不把所有的都放進來,這樣也比較好分離錯誤。
更新基礎信息表,通過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語句。
python的學習之路===小白學編程(3)