这次讲怎么把API接口的数据导入到Python里。
一、tickers接口 爬取单个品种
首先导入库,urllib是爬取网页数据的库,urlopen是爬取数据的意思。json是一种转换数据格式的库,就像上一讲在网页上转换为json格式一样,在python里转换而已。pandas是经典的数据处理库。
构建URL
爬取数据
将网页数据用urlopen爬取到变量content上,持续时间timeout为15秒,超时报错。然后将content用decode转化为字符串,采用编码方式为utf-8。
将数据转化为dataframe
先用json将数据转变成字典格式,然后将其变成dataframe的浮点数格式。
对df进行处理
将数据中的“at”列删除,只显示“ticker”。之后用“.T”对其进行转置,这就是线性代数里的那个意思。
二、 tickers接口 爬取多个品种
第一步还是带入库,最后一行的意思是数据长了的话不换行。
然后我们来做一个模块,这个模块起到和urlopen同样的作用,但是当尝试失败超过定义次数后,会出相应的提示,最后给出一个空值。
创建一个模块,用来获取ticker数据。在中括号里输入要爬取的品种列表。
构建url,然后用上面的模块爬取这个url,当为空值时,跳过这个循环。
将数据转为DateFrame格式,去掉‘at’列,加上‘symbol’列。之后用append语句合并数据。
最后,整理列,按你想要的顺序排好。
三、klines接口
OTC的klines接口有三个参数,分别是:market——设定品种;limit——设定读取多少根k线;period——设定k线周期,单位是分钟,包括1, 5, 15, 30, 60, 120, 240, 360, 720, 1440, 4320, 10080。
然后就是1、构建URL;2、将数据转为DF格式;3、整理。
整理时用rename将序列号重命名为需要的,然后用pd.to_datetime将unit时间转换成格林威治时间,注意后面的unit单位可能是秒s,也可能是毫秒ms,视你用的交易所而定。
最后将格林威治时间通过pd.Timedelta加8个小时,转为北京时间。注意k线时间是k线的开始时间。
ps:本文所有版权来自邢不行老师的“数字货币量化课程”,如有需要随时删除。