我正在 Visual Studio Code 中用 Python 制作货币转换器脚本,并且使用法兰克福 API,它在几天前一直工作正常,直到现在每次我尝试获取 API 时都会收到 404 错误:|| |输出:
> response = requests.get(f"https://api.frankfurter.app/latest?amount={amount}&from={CF}&to={CT}")
> print("API Response:", response.json())
> print(response.status_code)
对我来说,虚拟环境总体上非常不一致,我一直在尝试删除并重新创建环境,希望能够修复某些问题,但无济于事。
API Response: {'message': 'not found'}
404
Traceback (most recent call last):
File "C:\Users\OMEN\Visual Studio\RTCurrencyConverter\Converter.py", line 59, in <module>
print(f"{amount} {CF} is {response.json()['rates'][CT]} {CT}")
KeyError: 'rates'
Virtual environments for me have been very inconsistent in general and I kept trying to remove and recreate environments hoping that would fix something but to no avail.
404 错误代码表示所请求的资源在服务器上未找到。在这种情况下,看来尝试访问的法兰克福 API 端点 (https://api.frankfurter.app/latest?amount={amount}&from={CF}&to={CT}) 不再可用或存在语法错误。
不过,法兰克福 API 的文档没有指定
amount
、
from
和
to
参数应作为查询参数传递。
以下是修复代码的方法:
import requests
amount = 10
CF = "USD"
CT = "EUR"
response = requests.get(f"https://api.frankfurter.app/{CT}?amount={amount}&from={CF}")
if response.status_code == 200:
data = response.json()
print(f"{amount} {CF} is {data['rates'][CT]} {CT}")
else:
print("API Request Error:", response.status_code)
print(response.json())
说明:
-
正确的端点:
我们在请求 URL 中使用
https://api.frankfurter.app/{CT}
。这与法兰克福 API 文档中指定的方式相符。 -
错误处理:
我们在访问
response.json()['rates'][CT]
之前检查响应状态代码是否为200
(成功)。如果 API 请求失败,这可以防止出现KeyError
。
通过这些更改,的代码应该能够成功从法兰克福 API 获取数据。如果问题仍然存在,请确保 API 密钥有效(如果有)并且没有超出 API 使用限制。
标签:python,python-3.x,visual-studio-code,python-venv From: 78812235