Парсим JSON на Python

Рассмотрим как парсить JSON на Пайтоне. JSON – это легковесный формат обмена данными.

Сначала мы загружаем JSON файл с помощью метода json.load(). В результате получается словарь на Python. Затем мы можем получить доступ к полям с помощью методов словаря.

Чтобы извлечь информацию из JSON-файла или JSON-ответа, мы должны разобрать данные.

Загрузка JSON

В нашем примере мы будем использовать следующий JSON:

{
   "store":{
      "book":[
         {
            "category":"reference",
            "author":"Nigel Rees",
            "title":"Sayings of the Century",
            "price":8.95
         },
         {
            "category":"fiction",
            "author":"Evelyn Waugh",
            "title":"Sword of Honour",
            "price":12.99
         }
      ],
      "bicycle":{
         "color":"red",
         "price":19.95
      }
   },
   "expensive":10
}

Первый шаг – это загрузка JSON-файла в Python:

import json

with open('store.json') as json_file:
    data = json.load(json_file)
print(data)

JSON-файл теперь хранится в переменной data.

Метод print просто выведет указанный выше JSON.

Примечание: вышеприведенный метод будет хранить JSON как словарь Питона. Мы можем проверить это, выведя тип, print(type(data)).

Извлекаем конкретные данные из JSON

Теперь, когда у нас есть JSON в виде словаря Python, мы можем получить определенные данные, указав поле, которое представляет собой ключ в словаре.

Например, чтобы получить цену велосипеда в вышеуказанном JSON, мы бы использовали:

print(data['store']['bicycle']['price'])

Выведет:

19.95

Извлечение данных из массива JSON

В приведенном выше примере JSON поле “книга” (book) представляет собой массив JSON.

Мы можем использовать индексную нотацию для получения определенных элементов.

Например, чтобы получить название второй книги, мы будем использовать:

print(data['store']['book'][1]['title'])

Выведет:

Sword of Honour

Условный парсинг JSON

Предположим, мы хотели получить все книги, цена которых меньше или равна 10.00.

Тогда мы бы использовали:

books = data['store']['book']
for book in books:
    if book['price'] <= 10.00:
        print(book)

Выведет:

{'category': 'reference', 'author': 'Nigel Rees', 'title': 'Sayings of the Century', 'price': 8.95}

В этой статье мы рассмотрели, как парсить JSON в Python. Ключевым моментом здесь является то, что после загрузки JSON-файла он хранится в виде словаря на Python. После того, как у нас есть словарь, мы можем использовать обычные словарные методы для извлечения определенных значений из JSON.

Наверх ↑

Сергей Ермилов

Создаю веб-проекты, придумываю идеи, занимаюсь разработкой, оптимизирую и продвигаю сайты. Первые шаги в этом направлении были сделаны в 2008 году. Если у вас есть какие-то идеи или вы хотите что-то предложить, то пишите мне и моей команде.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вы можете использовать HTML теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>