如何通过HTTP API 调取tushare的股票数据
长久以来,Tushare一直以固定的Python SDK方式为大家提供数据服务。
虽然在基于Python的数据分析和Python的量化策略开发很方便,但习惯用其他语言的同学们表示了“抗议”,于是在Tushare的Github开发组里,衍生出了各种语言版本的Tushare,比如Ruby Tushare,nodejs Tushare...
尽管多出了不少版本,但数据还是不能统一管理,Tushare的数据标准没有建立起来。
于是,我们在最近发布的Tushare Pro版里,增加对HTTP RESTful API的支持,用户可以通过标准协议,获得想要的数据,而且与编程语言无关。
HTTP API说明
在tushare.pro网站上,我们在平台介绍的“调取数据”部分,已经对http协议的数据获取做了说明,这里再次详细的向大家介绍一下,尽量让大家多一点的了解如何通过http的方式获取Tushare数据。
Tushare HTTP数据获取的方式,我们采用了post的机制,通过提交JSON body参数,就可以获得您想要的数据。具体参数说明如下:
输入参数
api_name:接口名称,比如stock_basic
token :用户唯一标识,可通过登录pro网站获取
params:接口参数,如daily接口中start_date和end_date
fields:字段列表,用于接口获取指定的字段,以逗号分隔,如"open,high,low,close"
输出参数
code: 接口返回码,2002表示权限问题。
msg:错误信息,比如“系统内部错误”,“没有权限”等
data:数据,data里包含fields和items字段,分别为字段和数据内容
以下,我们从几个方面来介绍具体的使用过程。
API工具快速检测
如果想简单快速获得数据API的效果,检测一下可用性,又不想写代码的话,postman这个工具或许可以派上用场。
运行postman,选择POST方式,在API地址栏里输入:http://api.waditu.com ,然后在下面点击body,输入json格式的参数。
之后,点击“Send”按钮,我们可以在结果栏目里看到调取API的最终效果。
代码快速检测
有的程序员可能更喜欢用代码的方式来检查API的效果,更加直接,简单,高效。我们可以借助cURL工具来实现通过命令行方式来检测。
curl -X POST -d '{"api_name": "stock_basic", "token": "xxxxxxxx", "params": {"list_stauts":"L"}, "fields": "ts_code,name,area,industry,list_date"}' http://api.waditu.com
(按住屏幕滑动可浏览全部代码)
在控制台执行后,我们就可以看到如下数据效果。
{
"code": 0,
"msg": null,
"data": {
"fields": [
"ts_code",
"name",
"area",
"industry",
"list_date"
],
"items": [
[
"000001.SZ",
"平安银行",
"深圳",
"银行",
"19910403"
],
[
"000002.SZ",
"万科A",
"深圳",
"全国地产",
"19910129"
],
[
"000004.SZ",
"国农科技",
"深圳",
"生物制药",
"19910114"
],
[
"000005.SZ",
"世纪星源",
"深圳",
"房产服务",
"19901210"
],
[
"000006.SZ",
"深振业A",
"深圳",
"区域地产",
"19920427"
],
[
"000007.SZ",
"全新好",
"深圳",
"酒店餐饮",
"19920413"
],
[
"000008.SZ",
"神州高铁",
"北京",
"运输设备",
"19920507"
]
...
}
}
Python调取示例
前面已经提到,http restful API的好处就是跟编程语言无关,基本上所有编程语言都可以调取。
由于编程环境太多,这里只拿Python作为示例,其他语言的实现,请各位用户自行查找网络资源完成,相信绝大多数会编程的用户都能轻松搞定。
其实Tushare Pro新版的SDK,正是利用http方式来获取数据的,虽然我们也提供了tcp的方式,但是http目前运行良好,稳定性已经得到了验证。
以下就是相关的核心代码,有兴趣的朋友可以访问Tushare 的Github下载完整代码。
def req_http_api(self, req_params):
req = Request(
self.__http_url,
json.dumps(req_params).encode('utf-8'),
method='POST'
)
res = urlopen(req)
result = json.loads(res.read().decode('utf-8'))
if result['code'] != 0:
raise Exception(result['msg'])
return result['data']
def query(self, api_name, fields='', **kwargs):
req_params = {
'api_name': api_name,
'token': self.__token,
'params': kwargs,
'fields': fields
}
if self.__protocol == 'tcp':
data = self.req_zmq_api(req_params)
elif self.__protocol == 'http':
data = self.req_http_api(req_params)
else:
raise Warning('{} is unsupported protocol'.format(self.__protocol))
columns = data['fields']
items = data['items']
return pd.DataFrame(items, columns=columns)
tushare积分怎么获得
本人是做量化投资的,团队转型,换了交易策略,
手头有多个离职同事的闲置转让.
600分:原价50元,仅需39元
1500分:原价150元,仅需109元(售罄)
2000分:原价200元,仅需149元
5000分:原价500元,仅需388元(售罄).
数量不多,需要请连系VX: a56746435 (备注tushare)
如何通过HTTP API 调取tushare的股票数据的更多相关文章
- Python使用TuShare将股票数据保存到Oracle数据
TuShare是个获取股票数据的模块包,我们进行分析,需要将股票数据保存到本地,避免每次都从网上获取,由于本机装有ORCALE,以ORACLE为例介绍如何保存股票数据到本地. 一.大致思路:我们先获取 ...
- python财经数据接口包Tushare pro的入门及简单使用方式(大数据,股票数据接口)
最近在做一个项目,需要用到股票的数据,我在网上查了很久,最终发现在股票数据上面还是tushare比较专业,而且对于将来做金融行业的大数据这一块的,tushare绝对是你的一个好帮手,所以下面我就简单介 ...
- python+tushare获取股票和基金每日涨跌停价格
接口:stk_limit 描述:获取全市场(包含A/B股和基金)每日涨跌停价格,包括涨停价格,跌停价格等,每个交易日8点40左右更新当日股票涨跌停价格. 限量:单次最多提取4800条记录,可循环调取, ...
- 免费股票数据API接口
免费股票数据API接口提供沪深.香港.美国股市信息. 1.沪深股市 2.香港股市 3.美国股市 4.香港股市列表 5.美国股市列表 6.深圳股市列表 7.沪股列表 API文档:https://www. ...
- 数据接口-免费版(股票数据API)
获取股票数据的源头主要有:数据超市.雅虎.新浪.Google.和讯.搜狐.ChinaStockWebService.东方财富客户端.证券之星.网易财经. 数据超市 2016年5月6日更新.根据最近频繁 ...
- tushare获取股票每日重要的基本面指标数据,并存入Elasticsearch
tushare是一个开放的,免费的金融数据平台,包含沪深股票数据,指数数据,基金数据,期货数据,期权数据,债券数据,外汇数据,港股数据,行业经济数据,宏观经济数据以及新闻快讯等特色数据.其中以沪深股票 ...
- 使用tushare获取股票实时分笔数据延时有多大
使用tushare获取股票实时分笔数据延时有多大 前几天分享了一段获取所有股票实时数据的代码,有用户积极留言,提出一个非常棒的问题:如果数据本生的延时非常严重,通过代码获取数据再快又有什么用呢? 一直 ...
- 使用tushare获取股票历史数据和实时分笔数据
使用tushare获取股票历史数据和实时分笔数据 财经数据接口包tushare的使用(一) Tushare是一款开源免费的金融数据接口包,可以用于获取股票的历史数据.年度季度报表数据.实时分笔数据 ...
- Tushare金融大数据入门
Tushare金融大数据社区,是一个免费提供各类金融数据和区块链数据的平台 ,旨在助力智能投资与创新型投资. 积分 数据千万条,积分第一条 目前,提供的数据包含股票.基金.期货.债券.外汇.行业大数据 ...
随机推荐
- js中的对象类型的基本操作
示例 /** * 对象属于一种复合数据类型,在对象中可以保存多个不同数据类型的属性 * 对象的分类: * 1.内建对象 * - 由ES标准定义的对象,在任何ES的实现中都可以使用,比如:Math, * ...
- CSS中的关系选择器
关系选择器是指根据与其他元素的关系选择元素的选择器,常见的符号有空格.>.~,还 有+等,这些都是非常常用的选择器. 后代选择器:选择所有合乎规则的后代元素.空格连接. 相邻后代选择器:仅仅选择 ...
- ES6 的基础教程
一.介绍 1.历史 ECMAScript和JavaScript ECMA是标准,JS是实现 类似于HTML5是标准,IE10.Chrome.FF都是实现 换句话说,将来也能有其他XXXScript来实 ...
- vue,一路走来(4)--vuex
补充 调用外部js,详细介绍如何调用函数. 1.首先在main.js里引用文件 2.然后算是和jquery框架一样需要所谓的入口函数吧 不过令我烦恼的是,在应用的文件中需要把他包含在另一个函数里,才可 ...
- 分布式理论 BASE、CAP、ACID
CAP原理: 在理论计算机科学中,CAP定理(CAP theorem),又被称作布鲁尔定理(Brewer's theorem),它指出对于一个分布式计算系统来说,不可能同时满足以下三点: 一致性(Co ...
- 如何防御DNS陷阱?黑客常用3种DNS欺骗手法
DNS如何被利用?那么这个系统如何让用户变得脆弱?通常解析器会告诉每个DNS服务器你正在寻找哪个域名.此请求有时会包含您的完整IP地址.或者,如果不是您的完整IP地址,请求中通常会包含您的大部分IP地 ...
- GSL+DevC++使用
在DEV C++中配置GSL1.8库 前面写了如何在vs2005中添加gsl,本文所所述为在dev c++中使用gsl库,由实践总结而得. 准备软件: 1.Orwell Dev C++ 5.6.2 N ...
- centos 6.5 解压 tar
只查看 tar 文件内容而不解压 tar -tvf filename.tar 解压到指定目录(没有指定则为当前目录) tar xvf filename.tar -C /usr/file 压缩为 tar ...
- js DOM0级事件和DOM2级事件
注册事件有两种方式,分别是DOM0级和DOM2级 DOM0级就是通过事件绑定的形式dom元素只能有(绑定)一个事件处理函数,他的特点是同一个元素绑定相同事件, 后面函数会覆盖前面的 绑定: dom.o ...
- 使用C#获取IP地址方法
C#中如何获取IP地址?,看到问题的时候我也很纠结,纠结的不是这个问题是如何的难回答,而是纠结的是这些问题都是比较基本的常识,也是大家会经常用到的.但是却不断的有人问起,追根究底的原因估计就是没有好好 ...