Робота з даними 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.