首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我觉得我必须获得很多请求,如何更有效地使用api (python)

我觉得我必须获得很多请求,如何更有效地使用api (python)
EN

Stack Overflow用户
提问于 2022-09-10 18:28:53
回答 1查看 41关注 0票数 2

我用python(3.10)编写了一个python程序,它使用CSV模块获得一些名为“货币”、“飞行”、“出租车”和“健身房”的特定列,还有更多。这个程序所做的就是检查单元格“货币”中的值是否等于一种设定的货币(如美元或摩擦),然后从该货币中将以下单元格转换为美元。它通过API GET请求(使用fixer )执行此转换,如下所示:

代码语言:javascript
复制
from_CAD_USD = f"https://api.apilayer.com/fixer/convert?to=USD&from=CAD&amount={flight}"
        response = requests.request("GET", from_CAD_USD, headers=headers, data=payload)
        status_code = response.status_code
        result = response.json()
        value = result["result"]

这个特定的请求是接受变量“for”,并将其从"CAD“转换为”美元“。我的问题是,我是否需要对我想要转换的所有货币进行这种get请求,然后为其他列编写相同的请求?因为,正如现在所写的,我需要这样做:

代码语言:javascript
复制
CAD to USD for flights column
CAD to USD for taxi column #as taxis is a different value than flight being passed into amount
CAD to USD for gym column

因此,这只是一种货币转换,但现在我需要为RUB货币和MXN currency...etc编写相同的代码,因为它目前只支持4行的航班转换功能,每次运行程序时都需要它的12 get请求。那似乎太过分了。但我是个新手,所以我以前从来没有处理过这样的事情。有更好的办法吗?我考虑的不是一遍又一遍地从get请求进行转换,我可以得到一个get请求,假设当前从CAD到美元的汇率为1美元(1美元= .77CAD),得到20种货币类型的值(那么应该只有20个请求吗?)然后使用这些值与单元格中的数量相乘,有效地进行转换。

我希望API处理转换而不是做某种浮点乘法的原因是,在过去,我得到了不准确的四舍五入,并且在转换过程中丢失了多达9美元。任何有关如何更好地管理API请求的信息都将受到极大的赞赏。谢谢社区!

EN

回答 1

Stack Overflow用户

发布于 2022-09-10 18:45:39

有一个选项,也可能是我要选择的选项,是使用/latest API端点来获取汇率,然后自己进行转换计算。使用API的/latest端点,您可以在一个get请求中获得从单一货币到所有其他货币的汇率。

然后,您可以使用转换端点来测试一些结果,以确保它们正确匹配。

另一种选择是继续按照当前的方式进行缓存或回忆录,这样您就可以知道自己不会发出重复的请求。

这是一个让CAD达到美元汇率的例子,以及其他一些例子。

代码语言:javascript
复制
url = "https://api.apilayer.com/fixer/latest"
params = {"symbols":["USD", "MXN", "RUB"], "base": "CAD"}
payload = {}
headers= {
  "apikey": "{API-KEY}"
}
response = requests.get(url,headers=headers,params=params,payload=payload)
result = response.json()
from_CAD_USD = result["rates"]["USD"]

如果每个值都应该与convert端点的输出100%相同。那么这个策略可能不是更好的选择。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73674288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档