使用 Response.Json() 字符串中的数字并将其作为参数传递以获取请求并在 Python 中循环附加结果

Use the numbers from Response.Json() string and pass it as parameters to get requests and loop append the results in Python

提问人:Data Analyst 提问时间:3/27/2023 更新时间:3/28/2023 访问量:30

问:

我正在使用以下代码从 rest api 获取结果。循环结果并附加相同的结果。

mylog = []
offset = 0
limit = 50

while True:    
    url = f"https://api.newrelic.com/v2/alerts_nrql_conditions.json?offset={offset}&limit={limit}"
    response = requests.request("GET", url, headers=headers, proxies=proxies)
    data = response.json()
    if len(data['data']) == 0:
        break    
    mylog.extend(data['data'])    
    offset = offset + 50

但现在我有一个 JSON 字符串,如下所示。我想使用下面的 ID 号将其作为参数传递给上面的 URL。参数应poilicy_id,值应为 JSON 字符串中的数字,如下所示。

获取第一个策略 ID 的结果,并逐个追加。

请帮我编写代码,因为我是 Python 的新手。

{
  "policies": [
    {
      "id": 1119732,
      "incident_preference": "PER_CONDITION_AND_TARGET",
      "name": "Alert 1",
      "created_at": 1605003072469,
      "updated_at": 1673391349002
    },
    {
      "id": 1133740,
      "incident_preference": "PER_CONDITION",
      "name": "Alert 2",
      "created_at": 1605780951866,
      "updated_at": 1673391348520
    },
    {
      "id": 1136308,
      "incident_preference": "PER_CONDITION",
      "name": "Alert 3",
      "created_at": 1605886254921,
      "updated_at": 1673391349028
    }
  ]
}
python-3.x 列表 python-2.7 rest

评论


答:

0赞 sufyan98 3/28/2023 #1

由于您的键值对位于列表中,因此我将首先提取它,以便您可以迭代它:

y = list(data.values())
y = y[0]

然后,您可以执行以下操作:

url1 = "https://api.newrelic.com/v2/alerts_nrql_conditions.json"
newdict = {}
for i in range(len(y)):
    newdict.update(y[i])
    newurl=url1+f"policy_id={newdict['id']}"
    # Then do what you need to with url.