В этой статье мы подробно остановимся на парсинге веб-ресурсов с помощью языка программирования 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.
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.