今天在朋友圈看到下图,突然想知道最近汇率的走势如何。因此我用Python尝试了一下之前一篇文章提到的公开数据接口。结果让我非常失望,只有world bank有比较全的汇率数据,但是这些数据频率都是以年为单位的,没有办法观察最近的走势。抱着老司机带路的思想,去网上寻找答案,发现网上大多数老司机的解决办法都是通过Python去Yahoo finance上面写爬虫去爬,这种方法太复杂而且在自己处理的过程中会有很多困难,所以这显然不是一个很好的解决办法。
难道就没有其它的办法了么?经过不懈的努力,被我找到了一个很好的网站,它提供python外汇数据接口的API,可以很方便的通过本地操作下载外汇的数据(json格式),今天把这个方法分享给大家。
打开网址 ,看到如下的页面:
在使用之前我们要先进行注册,点击Get Instant Access
一开始把我吓了一跳,我靠竟然要收费!!仔细一看发现有Forever Free,立马点进去开始注册(后面的事实证明免费的没有好东西!!)
注册完成后,看到自己账户这里有个userID,把这个东西记下来,这个是数据接口识别你的唯一特征。
点击Getting Started ,得到如下页面,在左边一栏有六个获取不同数据的命令,我们对latest.json进行详细介绍,其余的把方法类似,这里仅仅把代码分享给大家。
/latest.json:顾名思义,最新的汇率信息,其参数构成如下
app_id 就是我们之前账户的user_id,
base 即base currency,基准货币,以单位该货币能够兑换多少其它货币,默认的是美元USD
symbols 即选择quote currency,报价货币,默认的是其数据库所有的全部
其网站也给出了如下的示例:
即我们通过Python提交的http命令应是图示中的样子,那通过Python如何实现上述命令呢?我们可以通过requests来实现
import requests #加载requests包
payload = {'app_id': 'c1b6bc1b8b894f2ea21c8a73f1684263'} #在这里设置你的参数
r = requests.get("https://openexchangerates.org/api/latest.json", params=payload) #发送你的http请求
r.json() #显示下载的json格式数据
按照上述命令,我们得到了美元汇率的实时数据(网站上标明这个更新的频率是几个小时)
/historical/*.json:获取历史数据,代码如下
payload = {'app_id': 'c1b6bc1b8b894f2ea21c8a73f1684263'}
r = requests.get("https://openexchangerates.org/api/historical/2001-02-16.json", params=payload)#/latest.json变为/historical/2001-02-16.json
r.json()
发表评论