我有这个脚本来使用meraki python模块进行API调用来查询Meraki设备。
我尝试在代码中添加一些错误处理,以便如果API调用返回错误代码,它将执行其他操作。我不知道该怎么办。
下面是我的简单代码,只查询一个设备:
import meraki
import requests
API_KEY = 'API_KEY'
dashboard = meraki.DashboardAPI(API_KEY)
serial = input("What is the serial number?")
print(f"{serial}")
response = (dashboard.devices.getDevice(serial))
当我运行脚本时,它将返回“200 OK”或“404 Not Found”
终端窗口响应:
C:\Scripts\Meraki\dev> python .\getdevice.py
What is the serial number? XXXX-XXXX-XXXX
2023-04-26 18:32:52 meraki: INFO > GET https://api.meraki.com/api/v1/devices/XXXX-XXXX-XXXX
2023-04-26 18:32:53 meraki: INFO > devices, getDevice - 200 OK
或
2023-04-26 18:41:09 meraki: INFO > GET https://api.meraki.com/api/v1/devices/XXXX-XXXX-XXXX
2023-04-26 18:41:10 meraki: ERROR > devices, getDevice - 404 Not Found, b''
此脚本的目的是检查序列号是否已分配给用户/网络。如果它是可用的,我会得到一个“404未找到”,如果它已经被分配给某人,我会得到一个“404未找到”。
如何检测和处理404案例?
1条答案
按热度按时间mo49yndu1#
我假设您使用的是
meraki
包,其源代码位于https://github.com/meraki/dashboard-api-python/tree/main/meraki。根据这一点,如果出现404响应,
getDevice
应该引发APIError
异常。它包含status
、reason
和message
属性中错误的详细信息(请参阅https://github.com/meraki/dashboard-api-python/blob/main/meraki/exceptions.py)-日志输出显示了包含这些属性的APIError.__repr__
的结果。您可以使用
try
/except
语句来处理它:如果你需要专门处理404的情况,你可以使用
if
语句: