Парсинг JSON в Python

Привет, друзья! Сегодня я расскажу вам о том, как работать с форматом JSON в Python. Это очень полезный навык, особенно если вы работаете с API, собираете данные из интернета или обмениваетесь информацией между разными системами.
Что такое JSON?
JSON (JavaScript Object Notation) — это текстовый формат обмена данными, который удобен как для людей, так и для машин. Он часто используется при работе с веб-API, мобильными приложениями и серверами.
Вот пример простого JSON:
{
"name": "Иван",
"age": 30,
"is_student": false
}
Как видите, он похож на словарь в Python, что делает его очень удобным для работы в этой языковой среде.
Зачем парсить JSON?
Представьте, что вы получили ответ от веб-API, например, прогноз погоды или список пользователей. Эти данные обычно приходят в формате JSON. Чтобы с ними работать в Python, нужно преобразовать их в понятные структуры: словари и списки. Для этого и нужен парсинг.
Как распарсить JSON в Python?
Для работы с JSON в Python есть встроенная библиотека json, которая позволяет легко преобразовывать JSON в объекты Python и обратно.
1. Парсинг JSON-строки
Если у вас есть строка с JSON-данными, используйте функцию json.loads()
:
import json
json_string = '{ "name": "Мария", "age": 25, "is_student": true }'
data = json.loads(json_string)
print("Имя:", data["name"])
print("Студент:", data["is_student"])
2. Чтение JSON из файла
Если данные хранятся в файле, например, data.json
, используйте json.load()
:
import json
with open('data.json', 'r', encoding='utf-8') as file:
data = json.load(file)
print("Имя:", data["name"])
print("Возраст:", data["age"])
3. Парсинг JSON-списка
Иногда JSON представляет собой список объектов:
[
{ "name": "Иван", "age": 30 },
{ "name": "Мария", "age": 25 }
]
В Python это будет обычный список словарей:
import json
with open('users.json', 'r', encoding='utf-8') as file:
users = json.load(file)
for user in users:
print(f"{user['name']} — {user['age']}")
Что делать, если JSON невалиден?
Если формат JSON нарушен, Python выбросит ошибку json.JSONDecodeError
. Чтобы программа не падала, можно использовать блок try/except
:
import json
invalid_json = "{ invalid: json }"
try:
data = json.loads(invalid_json)
except json.JSONDecodeError as e:
print("Ошибка парсинга JSON:", e)
А как сохранить данные в JSON?
Иногда нужно сделать обратное — превратить словарь или список Python в JSON. Для этого используется функция json.dumps()
:
data = {
"name": "Петр",
"age": 28,
"is_student": True
}
json_output = json.dumps(data, ensure_ascii=False, indent=2)
print(json_output)
ensure_ascii=False
— чтобы кириллица отображалась корректно.indent=2
— красивое форматирование с отступами.
Как получить JSON от API?
Если вы работаете с веб-API, то чаще всего данные приходят в виде JSON. Для этого отлично подходит библиотека requests:
import requests
response = requests.get('https://api.example.com/data')
data = response.json() # автоматически парсит JSON
print(data)
Хочешь больше практики?
Если вам интересно научиться применять Python в реальных задачах, рекомендую курс "Написание лайфхаков на Python". В этом курсе вы узнаете, как автоматизировать рутинные задачи, работать с API, парсить данные и многое другое!
-
-
Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.