Парсинг на языке программирования Python

В этой статье мы подробно остановимся на парсинге веб-ресурсов с помощью языка программирования Python.

Python
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 в виде словаря Python, мы можем получить определенные данные, указав поле, которое представляет собой ключ в словаре.

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

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

Выведет:

19.95

Извлекаем данные из массива

В приведенном выше примере 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.

Опубликовано 30 ноября 2022 в 17:18
Обновлено 9 января 2024 в 14:05
Категория: Блог
Теги: