Парсинг JSON



Очень часто сервера отдают нужную нам информацию в JSON-формате, и наша задача — найти именно тот сетевой запрос, в  котором есть JSON, и распарсить его.

Как найти «тот самый запрос с JSON».

Использование инструментов разработчика в браузере для мониторинга сетевых запросов F12 => Вкладка network => Фильтр Fetch\XHR.

Изучение документации к API для определения, какие запросы возвращают данные в формате JSON (Если такая имеется).

Для следующего примера нам понадобится jsonplaceholder, сервис, который предоставляет JSON для разработчиков. У него есть 6 ресурсов -. /posts/comments/albums/photos/todos,  /users

Давайте сделаем запрос на /posts и посмотрим на данные через jsonviewer. Мы увидим 100 постов, где мы можем извлечь четыре поля: «userId», «id», «title», «body». Если мы хотим получить какой-либо определенный элемент, мы должны указать его в квадратных скобках- [«title»].

Для того, чтобы получить все ‘userId’ и ‘title’, мы пройдемся по всем элементам в цикле for:

import requests

url = 'https://jsonplaceholder.typicode.com/posts'
response = requests.get(url=url).json()
for item in response:
    print(item["userId"], item["title"])
>>> 1 sunt aut facere repellat provident occaecati excepturi optio reprehenderit
    1 qui est esse
    1 ea molestias quasi exercitationem repellat qui ipsa sit au
    ...
    10 at nam consequatur ea labore ea harum

В результате мы получили все «userId» и «title». Обратите внимание на метод .json(), применяемый к переменной response. Мы рассмотрели метод .json() в разделе, посвященном библиотеке requests. Данный метод позволяет сериализовать информацию, полученную с сервера, в формате JSON-объекта, при условии, что сервер готов предоставить нам эти данные.



Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: