Найти тему

Python. Знакомство с JSON и библиотекой Requests

Оглавление

Всем привет!

В этой статье мы поговорим про JSON и библиотеку Requests.

Формат JSON.

В этой статье мы поговорим про формат благодаря которому frontend и backend могут общаться между собой - это формат JSON.

JSON (JavaScript Object Notation) - это текстовый формат обмена данными. С ним можно работать почти на любом языке программирования. Подробнее.

Формат JSON похож на словари в Python

Словарь

JSON

Взято с вики: https://ru.wikipedia.org/wiki/JSON
Взято с вики: https://ru.wikipedia.org/wiki/JSON

Однако между ними есть различия:

  • Название ключа всегда пишется в двойных кавычках
  • Значение по ключу всегда пишется в двойных кавычках
  • Ключом не может быть число, только строка
  • Пустое значение обозначается как NULL
  • После последнего элемента не ставится запятая
  • Нельзя использовать кортежи или множества, только списки и словари

Для того, чтобы работать с JSON в Python есть библиотека JSON.

С помощью неё можно формировать JSON пакеты, а так же их распаковывать.

Давайте попробуем сформировать JSON пакет и вывести информацию на экран.

-3

Как видно на примере читать такой вывод в консоли не очень удобно, но если отформатировать его корректно, то получим следующий вид

-4

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

Давайте теперь распакуем JSON пакет и посмотрим что мы получим на выходе.

-5

Информацию мы получил такую же как и прежде, но что будет если мы сформируем словарь, где ключи будут числа и попробуем этот словарь запаковать в JSON и обратно в словарь

-6
-7

Как мы видим целочисленные ключи превратились в строки, но что же будет, если мы попробуем распаковать JSON

-8

Как мы видим теперь у нас ключи не числа, а строковые значения.

На этом про JSON все, давайте переходить к библиотеке Request.

Библиотека Requests

Библиотека Requests это стандарт выполнения HTTP запросов в Python

HTTP (HyperText Transfer Protocol) - протокол прикладного уровня передачи данных, изначально — в виде гипертекстовых документов в формате HTML, в настоящее время используется для передачи произвольных данных. ПОДРОБНЕЕ.

У библиотеки Requests много возможностей, но пока что нас интересует только содержимое на сайте и получение данных в JSON.

И так давайте же приступим к запросам на сайт. Для тестовых запросов и обучения я выбрал вот такой сайт.

На нём будет хорошо видно, все наши действия.

Давайте же сделаем первый запрос к сайту и посмотрим что мы получим.

Но для начала нам надо установить библиотеку Requests. чтобы её можно было импортировать. Уставка выполняется командой

pip install requests

После установки её можно будет импортировать.

Как видно на примере мы получили HTML разметку, а так же все то, что отвечает за отображения информации на сайте.

-9

Мы получили ответ код 200, это нам говорит о том, что мы успешно сделали запрос к сайту.

Чтобы получить только код ответа используется метод status_code.

Помимо кода 200, есть и другие кода:

  • 200 - успешно
  • 404 - не найден, если мы будем обращать к несуществующему источнику
  • 403 - успешно, но нет доступа
  • 500 - ошибка сервера
  • 503 - сервер долго не отвечает

Но как получить содержимое сайта? Для этого мы можем выполнить метод text и мы увидим что нам вернул сервер.

-10

Нам вернулась целая страница HTML со всеми данными, которые отвечают за отображение информации на сайте.

Давайте обратимся к сайту, который я указал выше и попробуем получить с него данные и сформировать JSON

При обращение ответ будет всегда разный!

-11

Сайт нам вернуть набор о фактах, хоть и с нарушением кодировки.

Давай теперь сформируем JSON и выведем ключи.

-12

Как мы видим у нас всего 2 ключа это fact и length.

Давайте теперь выведем 3 факта о кошках.

-13

Выполнили успешно и вывели 3 факта о кошках.

Если статья понравилась или была полезная, то подписывайтесь и ставьте лайки - ПОДПИСАТЬСЯ

Другие статьи канала:

Python. Структура данных. Вложенные словари.
Изучаю языки програмирования27 марта 2023
Python. Структуры данных. Списки словарей. Часть 7.2
Изучаю языки програмирования24 марта 2023
Python. Структуры данных. Часть 7.1
Изучаю языки програмирования23 марта 2023
-14

Наука
7 млн интересуются