第一步:導入包
import pandas as pd
import tushare as ts
from sqlalchemy import create_engine
第二步:初始化
初始化數據庫,替換【】內的內容
engine_ts = create_engine('mysql://【數據庫用戶名(比如root)】:【數據庫密碼(比如123456)】@【數據庫IP地址】:3306/【數據庫名字】?charset=utf8&use_unicode=1')
例子:
engine_ts = create_engine('mysql://root:123456@192.168.1.1:3306/gupiao?charset=utf8&use_unicode=1')
初始化tushare
注冊Tushare獲取TOKEN憑證
設置token
ts.set_token('your token here')
以上方法只需要在第一次或者token失效后調用,完成調取tushare數據憑證的
設置,正常情況下不需要重復設置。也可以忽略此步驟,直接用pro_api('your
token')完成初始化
初始化pro接口
pro = ts.pro_api()
如果上一步驟ts.set_token('your token')無效或不想保存token到本地,也可以
在初始化接口里直接設置token:
pro = ts.pro_api('your token')
pro = ts.pro_api()
第三步:從tushare獲取數據
指數每日行情
df = pro.index_daily(ts_code='399300.SZ')
或者按日期取
df = pro.index_daily(ts_code='399300.SZ', start_date='20180101', end_date='20181010')
上證指數000001.sh
上證50指數000016.sh
深圳成指399001.sz
創業板指數399006.sz
滬深300指數000300.sz
股票每日行情
df = pro.daily(trade_date=‘20200615) #日線,每天所有股票信息,沒有復權的數據,就是顯示的實際值
或者
前復權的每日數據adj='qfq'設置
df = ts.pro_bar(ts_code='000001.SZ', adj='qfq', start_date='20180101', end_date='20181011')
場內基金日線行情
df = pro.fund_daily(ts_code='基金代碼【150018.SZ】', start_date='20180101', end_date='20181029')
第四步:數據庫讀寫
從數據庫讀取數據
sql = """SELECT * FROM 表 LIMIT 20""" #數據庫查詢語句
df = pd.read_sql_query(sql, engine_ts) #執行查詢
寫數據
res = df.to_sql('sz50index_daily', engine_ts, index=False,
if_exists='append', chunksize=5000) #把df里面的數據寫到數據庫