Робота з даними JSON у Python

JSON (JavaScript Object Notation) — це полегшений формат даних, який використовується для обміну даними між сервером і клієнтом. Він зазвичай використовується у веб-додатках для надсилання та отримання даних. У Python є вбудований модуль json, який полегшує роботу з даними JSON. Ця стаття проведе вас через основи роботи з даними JSON у Python, включаючи читання, запис і маніпулювання об’єктами JSON.

Що таке JSON?

JSON — це текстовий формат, який легко читати та писати як для людей, так і для машин. Він складається з пар ключ-значення, подібно до словників Python. Типовий об'єкт JSON виглядає так:

{
    "name": "Alice",
    "age": 30,
    "city": "New York",
    "is_student": false,
    "skills": ["Python", "JavaScript", "SQL"]
}

Імпорт модуля JSON

Модуль json входить до стандартної бібліотеки Python, тому вам не потрібно нічого встановлювати. Просто імпортуйте його на початку сценарію:

import json

Читання даних JSON

Ви можете читати дані JSON із рядка або файлу. Метод json.loads() використовується для аналізу даних JSON із рядка, тоді як json.load() використовується для читання даних JSON із файлу.

Читання JSON із рядка

Щоб прочитати JSON із рядка, використовуйте метод json.loads(), який перетворює рядок JSON у словник Python.

# Example of reading JSON from a string
json_string = '{"name": "Alice", "age": 30, "city": "New York"}'
data = json.loads(json_string)

print(data)
print(data['name'])  # Output: Alice

Читання JSON з файлу

Щоб прочитати дані JSON із файлу, використовуйте метод json.load(). Цей метод читає вміст файлу та перетворює його на словник Python.

# Example of reading JSON from a file
with open('data.json', 'r') as file:
    data = json.load(file)

print(data)

Запис даних JSON

Ви можете записати дані JSON у рядок або файл. Метод json.dumps() використовується для перетворення об’єкта Python у рядок JSON, тоді як json.dump() використовується для запису даних JSON у файл.

Запис JSON у рядок

Щоб записати JSON у рядок, використовуйте метод json.dumps(), який перетворює словник Python на рядок JSON.

# Example of writing JSON to a string
data = {
    "name": "Bob",
    "age": 25,
    "city": "Los Angeles"
}

json_string = json.dumps(data)
print(json_string)

Запис JSON у файл

Щоб записати дані JSON у файл, використовуйте метод json.dump(). Цей метод приймає об’єкт Python і записує його у файл у форматі JSON.

# Example of writing JSON to a file
data = {
    "name": "Bob",
    "age": 25,
    "city": "Los Angeles"
}

with open('output.json', 'w') as file:
    json.dump(data, file)

Красивий друк даних JSON

Метод json.dumps() має кілька параметрів, які дозволяють форматувати дані JSON для кращої читабельності. Параметр indent визначає кількість пробілів для відступу, а параметр sort_keys ​​сортує ключі у виведених даних.

# Example of pretty-printing JSON data
data = {
    "name": "Charlie",
    "age": 35,
    "city": "Chicago"
}

json_string = json.dumps(data, indent=4, sort_keys=True)
print(json_string)

Перетворення між типами даних JSON і Python

Модуль Python json може обробляти різні типи даних і перетворювати їх між JSON і Python. Ось коротка довідка:

  • dict (Python) до object (JSON)
  • list (Python) до array (JSON)
  • str (Python) до string (JSON)
  • int, float (Python) до number (JSON)
  • True, False (Python) до true, false (JSON)
  • None (Python) до null (JSON)

Обробка помилок JSON

Під час роботи з JSON можуть виникати помилки через неправильне форматування або неочікувані дані. Модуль json викликає винятки, такі як JSONDecodeError, коли він стикається з такими проблемами. Використовуйте блоки try і except, щоб витончено обробляти ці помилки.

# Handling JSON errors
json_string = '{"name": "Alice", "age": 30, "city": "New York"'  # Missing closing brace

try:
    data = json.loads(json_string)
except json.JSONDecodeError as e:
    print(f"Error decoding JSON: {e}")

Висновок

Робота з даними JSON є фундаментальним навиком для розробників Python, особливо у веб-розробці та науці про дані. Модуль json надає прості у використанні методи для читання, запису та обробки даних JSON. Освоївши ці методи, ви зможете ефективно обробляти дані JSON у своїх програмах Python.