python 利用api获取货币汇率

首先先到fixer.io网站,也就是提供货币汇率接口的网站,网址是:https://fixer.io/,看起来是这样的:

documentation里是接口使用的具体说明,为了使用这个接口首先得申请一个api access key,点击屏幕右上角GET FREE API KEY:

不同价格的api key有不同的功能,当然越贵的功能越好,在这里我们申请免费的API KEY,它提供的访问次数是一个月1000次,可以获得每小时的更新数据,支持的查询有限,比如说只能以欧元为base,同时它还可以查看历史的数据。点击GET FREE API KEY,需要填写个人信息:

示例如下:

有个比较坑的地方就是这个网页必须要有vpn才可以有人机验证,没有vpn的话注册不了access key,用于学习用途的话翻可以用赛风,如果仅是个人学习使用的话可以用我注册的access key:dd44405658a1e71fd1d896a14a76f32d

使用方法具体可以看文档,比如说我想看当前欧元和人民币的汇率,那么可以让base=EUR,symbols=CYN,在浏览器搜索栏上输入

http://data.fixer.io/api/latest?access_key=dd44405658a1e71fd1d896a14a76f32d&base=EUR&symbols=CNY

其中access_key后面是你注册的access key,结果如下:

python利用api接口获取汇率的代码如下:

import requests

def main():
	res = requests.get("http://data.fixer.io/api/latest?access_key=dd44405658a1e71fd1d896a14a76f32d&base=EUR&symbols=CNY")
	if res.status_code != 200:
		raise Exception("ERROR: API rquest unsuccessful.")
	data = res.json()
	print(data)

if __name__ == "__main__":
	main()

结果:

获取的数据是json格式可以后期再自己处理,因为free key的base只能是欧元,所以可以多操作几次然后换算自己想要的货币的汇率,例子如下:

import requests

def main():
	base = input("First Currency: ")
	other = input("Second Currency: ")
	access_key = "dd44405658a1e71fd1d896a14a76f32d"
	res_b = requests.get("http://data.fixer.io/api/latest",
						params={"access_key": access_key, "base": "EUR", "symbols": base})
	res_o = requests.get("http://data.fixer.io/api/latest",
						params={"access_key": access_key, "base": "EUR", "symbols": other})
	if res_b.status_code != 200 or res_o.status_code != 200:
		raise Exception("ERROR: API request unsuccessful.")
	data_b = res_b.json()
	data_o = res_o.json()
	rate_b = data_b["rates"][base]
	rate_o = data_o["rates"][other]
	rate = round((rate_o / rate_b), 2)
	print(f"1 {base} is equal to {rate} {other}")	

if __name__ == "__main__":
	main()

猜你喜欢

转载自blog.csdn.net/dongyu1703/article/details/81558447