调取pro版数据


下面介绍两种常用的数据调取方式:

  • 通过tushare python包
  • 使用http协议直接获取

注:pro版数据接口采用语言无关的http协议实现,但也提供了多种语言的SDK数据获取

前提条件

1、已经注册了tushare社区用户 【注册用户
2、已经获取到tushare token凭证 【获取token

Python SDK

下载SDK

下载并安装最新版tushare SDK 【安装和升级方法

导入tushare

import tushare as ts

这里注意, tushare版本需大于1.2.10

设置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')

数据调取

以获取交易日历信息为例:

df = pro.trade_cal(exchange='', start_date='20180901', end_date='20181001', fields='exchange,cal_date,is_open,pretrade_date', is_open='0')

或者

df = pro.query('trade_cal', exchange='', start_date='20180901', end_date='20181001', fields='exchange,cal_date,is_open,pretrade_date', is_open='0')

调取结果:

    exchange  cal_date    is_open pretrade_date
0          SSE       20180901        0      20180831
1          SSE       20180902        0      20180831
2          SSE       20180908        0      20180907
3          SSE       20180909        0      20180907
4          SSE       20180915        0      20180914
5          SSE       20180916        0      20180914
6          SSE       20180922        0      20180921
7          SSE       20180923        0      20180921
8          SSE       20180924        0      20180921
9          SSE       20180929        0      20180928
10         SSE       20180930        0      20180928
11         SSE       20181001        0      20180928

HTTP协议方式

http restful 采用post方式,通过json body传入接口参数,请求地址为http://api.tushare.pro

输入参数

  • api_name,接口名称;
  • token,用于识别唯一用户的标识;
  • params,接口参数,如daily接口中start_date和end_date;
  • fields,字段列表,用于接口获取指定的字段,以逗号分隔,如"open,high,low,close";

输出参数

  • code: 接口返回码,2002表示权限问题。
  • msg: 错误信息;
  • data: 具体数据,成功的请求包含fields和items字段,fields与items数据一一对齐;

示例

采用命令行工具curl的请求示例如下:

curl -X POST -d '{"api_name": "trade_cal", "token": "xxxxxxxx", "params": {"exchange":"", "start_date":"20180901", "end_date":"20181001", "is_open":"0"}, "fields": "exchange,cal_date,is_open,pretrade_date"}' http://api.tushare.pro

返回结果:

{
        "code":0,
        "msg":null,
        "data":{
                "fields":[
                        "exchange",
                        "cal_date",
                        "is_open",
                        "pretrade_date"
                ],
                "items":[
                        [
                                "SSE",
                                "20180901",
                                0,
                                "20180831"
                        ],
                        [
                                "SSE",
                                "20180902",
                                0,
                                "20180831"
                        ],
                        [
                                "SSE",
                                "20180908",
                                0,
                                "20180907"
                        ],

            ...

                        [
                                "SSE",
                                "20180929",
                                0,
                                "20180928"
                        ],
                        [
                                "SSE",
                                "20180930",
                                0,
                                "20180928"
                        ],
                        [
                                "SSE",
                                "20181001",
                                0,
                                "20180928"
                        ]
                ]
        }
}
置顶