欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

Tushare

发布时间:2023/12/10 编程问答 64 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Tushare 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

文章目录

    • 安装
    • 新老接口
    • 调用接口需要获取基础积分
    • 存入Mysql数据库
    • 重试机制

系统:ubuntu18.04
python:3.8

使用Python SDK方式调用tushare接口。
官方文档都写的非常详细,这里只记录下使用中遇到的问题与解决方式。

安装

首先已经安装好conda或者python环境。官方文档也有其他安装方式,简单来说就以下这两种。

$ conda install tushare

or

$ pip install tushare

新老接口

tushare有一套历史接口,目前已经停止维护。所以在使用old接口时,会报错

本接口即将停止更新,请尽快使用Pro版接口:https://tushare.pro/document/2 ... urllib.error.URLError: <urlopen error [Errno -2] Name or service not known>

所以这里直接略过老接口,使用新接口

调用接口需要获取基础积分

调用pro接口,需要一些基础积分,比如stock_basic就需要120积分。注册+完善个人资料,就可以获取到100+20积分,就可以调用一些基本的接口。注册完成后,可记录下自己的token,在“用户中心”中点击“接口TOKEN”可以看到,在调用接口时,需要使用。

存入Mysql数据库

因为python3没有MySQLdb,所以这里需要用pymysql。
create_engine中的user,passwd,host,dbname,需要根据实际情况做调整。
以stock_basic接口返回数据作为例子,降返回结果存入stock_basic表。

import pandas as pd import tushare as ts import pymysql pymysql.install_as_MySQLdb() from sqlalchemy import create_engine engine_ts = create_engine('mysql://user:passwd@host/dbname?charset=utf8')def write_data(df):res = df.to_sql('stock_basic', engine_ts, index=False, if_exists='append', chunksize=5000)print(res)def get_data():pro = ts.pro_api('your_token')df = pro.stock_basic()return dfif __name__ == '__main__':df = get_data()write_data(df)print(tc)

重试机制

有时接口不能太频繁调用,可能会失败,所以需要重试机制。
以daily接口使用举例:

# 获取日线行情,保持数据稳定性,需要重试机制 def get_daily(trade_date):try_count = 10for i in range(try_count):try:df = pro.daily(trade_date=trade_date)except:print('get_daily try again ' + str(i))time.sleep(2)else:return dfprint(str(try_count) + ' try failed!')

总结

以上是生活随笔为你收集整理的Tushare的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。