从 response.text() 中提取 Id

问题描述

我想从以下响应(发现)中提取 id 的所有值。

代码

findings= requests.get('https://api.probely.com/targets/TaargetID/findings/36',headers={"Content-Type": "application/json","Authorization": "JWT <Token>"})
finding=findings.json()

发现:

{"count":45,"page_total":5,"page":1,"length":10,"results":[
      {
         "id":79,"target":
             {"id":"RzXFSNHH3qUY","name":"","site": 
                 {"id":"2qk21XKLrKyf","url":"https://test- 
                 0.ox.qa.prbly.win",.....},"(...)","id":12,"target":
          "(...)","id":32,"(....)"
}
]
}

我想得到一个像这样的 id 数组: id=[79,12,32] 如何提取这些 ID 并将其存储在数组中?

解决方法

您可以使用迭代遍历“结果”中的每个项目,然后将 ID 保存到数组中。

id_list = []

for result in finding["results"]:
    id_list.append(result["id"])

我还想指出,您不应该调用任何变量 id,因为它是一个内置的 Python 函数,覆盖它可能会产生不良后果。

,

你可以试试:

ids = list(map(lambda res: res["id"],finding["results"]))

什么类型的“结果”键? “id”字段出现多次