Python и Json — лучший способ извлечь разделы данных из API?

#python #json #api #post

#python #json #API #Публикация

Вопрос:

Хотите выяснить, как наилучшим образом извлекать и упорядочивать нужные мне части из API, поскольку он отображает большие объемы бесполезных данных.

Ввод

 response = requests.get('https://urlscan.io/api/v1/result/'   uuid   '/')
r3 = response.content.decode("utf-8")
print(r3)
  

Вывод: (https://urlscan.io/api/v1/result/1742c69a-17eb-4089-a01e-18decd64579c )

 *Only displaying bottom of data*
    "hashes": [
      "c67d9981ef9235ddcc3081be2c92f402b7525e5601970eb4811a3ea941d82448",
      "60b19e5da6a9234ff9220668a5ec1125c157a268513256188ee80f2d2c8d8d36",
      "970c15466fc742d78103ec93f9d78741ae743c6d08fbaec2fb0f541897b53f97",
      "5407e68f9bd5a647a464ebf80920fa1289747821da4497f020ede6c843701178",
      "3990ce6ae2ec606267ea6bee16b21dbd9bf5847dddb6e3f51c3539765c8a5af9",
    ]
  },
  "verdicts": {
    "overall": {
      "score": 0,
      "categories": [],
      "brands": [],
      "tags": [],
      "malicious": false,
      "hasVerdicts": 0
    },
    "urlscan": {
      "score": 0,
      "categories": [],
      "brands": [],
      "tags": [],
      "detectionDetails": [],
      "malicious": false
    },
    "engines": {
      "score": 0,
      "malicious": [],
      "benign": [],
      "maliciousTotal": 0,
      "benignTotal": 0,
      "verdicts": [],
      "enginesTotal": 0
    },
}
  

Мне нужно много данных, но также много бесполезных данных. Каков наилучший способ сделать что-то вроде

 Hashes:
*hash 1*
*hash 2*
*hash 3...*

Verdict:
Score: 0
Malicious: False

(next part I want, etc, etc)
  

Поэтому я не беру весь раздел целиком, в котором есть только части того, что я хочу.

Ответ №1:

Приведенный выше ответ отличный, но у меня также есть дополнительное решение для этого

 import requests
import json

req = requests.Session()

r = req.get("API Link").json()
#instead of json.loads, I used .json() to make it a bit more simple

  

Ответ №2:

Просто импортируйте json библиотеку и используйте loads метод. Это должно быть что-то вроде этого:

 import requests 
import json

response = requests.get(URL)
data = json.loads(response.text)
  

затем вы можете перемещаться по данным как по обычному словарю python. Чтобы получить ключи, используйте data.keys() , а затем получите доступ к данным data[key] .