You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python requests调用Meraki API获取交换机数据遇返回问题求助

获取Meraki API JSON数据的解决方案

嗨,我之前也碰到过一模一样的情况!当你用requests发送请求后得到<Response [200]>,这说明请求确实成功了,但这个输出只是响应对象的字符串表示,它并没有自动解析返回的JSON内容。要拿到你需要的交换机数据,只需要调用响应对象的.json()方法就行。

举个具体的例子,假设你的代码原本是这样的:

import requests

# 替换成实际的API地址、序列号和密钥
url = "https://api.meraki.com/api/v1/devices/你的序列号/switch/ports"
headers = {
    "X-Cisco-Meraki-API-Key": "你的API密钥"
}

response = requests.get(url, headers=headers)
print(response)  # 输出 <Response [200]>

只需要在获取响应后添加几行代码,就能解析出JSON数据:

import requests

url = "https://api.meraki.com/api/v1/devices/你的序列号/switch/ports"
headers = {
    "X-Cisco-Meraki-API-Key": "你的API密钥",
    "Accept": "application/json"  # 建议加上这个头,明确要求API返回JSON格式
}

response = requests.get(url, headers=headers)

# 先验证请求成功,再安全解析JSON
if response.status_code == 200:
    try:
        switch_data = response.json()
        print(switch_data)  # 现在就能看到和API示例一致的JSON数据了
        # 你还可以在这里进一步处理数据,比如提取特定端口信息
        for port in switch_data:
            print(f"端口{port['portId']}状态: {'启用' if port['enabled'] else '禁用'}")
    except ValueError:
        print("警告:API返回的内容不是有效的JSON格式")
else:
    print(f"请求出错,状态码: {response.status_code}")

额外说明:

  • .json()方法会自动把API返回的JSON字符串转换成Python的字典/列表,方便你直接进行数据操作。
  • 加上Accept: application/json请求头是个好习惯,虽然很多API默认返回JSON,但明确指定能避免一些潜在的格式兼容问题。
  • 如果API返回的内容不是有效的JSON,调用.json()会抛出ValueError,添加异常处理能让你的代码更健壮。

内容的提问来源于stack exchange,提问作者MarkS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:04:55