提问人:Data Analyst 提问时间:3/27/2023 更新时间:3/28/2023 访问量:30
使用 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
问:
我正在使用以下代码从 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
}
]
}
答:
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.
评论