首页 > 解决方案 > 如何将来自浏览器的 JSON 响应保存到 python 变量或文件中

问题描述

我是 python 和 api 查询的新手。但是,我在这个过程中学习 python 自动化。在这里请求您的帮助。

我有一个 SonarQube API 调用,通过它我可以在浏览器上获取一些指标或值作为 JSON 响应。我阅读了 curl 或通过 python 中的请求模块,我们将能够将响应下载到变量或文件中。我尝试了多少,我无法通过程序完成。现在,我正在将它硬编码在一个变量中并继续我的下一步。有人可以在这里帮助我。

我使用的查询:

https://sonar.com:9000/sonar/api/measures/component?component=abcdef&branch=test&metricKeys=ncloc

我在浏览器上得到这样的 JSON 响应:

  "component": {
    "id": "AXK4GYajYOT4RM44Ji",
    "key": "abcdef",
    "name": "test",
    "qualifier": "TRK",
    "measures": [
      {
        "metric": "ncloc",
        "value": "100000"
      }
    ],
    "branch": "test"
  }
}

我的意图是将所有这些存储在 python 变量中。

标签: python

解决方案


如果您使用requests包,您可以将响应存储在data变量中,如下所示:

import requests

params = {'component': 'abcdef', 'branch': 'test', 'metricKeys': 'ncloc'}
r = requests.get('https://sonar.com:9000/sonar/api/measures/component', params=params)
data = r.json()

print(data)

如果您想将其存储为JSON文件:

import json
with open('data.json', 'w') as f:
    json.dump(data, f, indent=2)

推荐阅读