JSON (JavaScript Object Notation) - это формат обмена данными, который широко используется в современном веб-программировании. В Python есть встроенный модуль json
, который позволяет кодировать и декодировать данные в формате JSON. Давайте рассмотрим основные функции модуля json
и 4 практических примера применения.
Кодирование данных в формат JSON
Для кодирования данных в формат JSON в Python используется метод json.dumps()
. Он принимает на вход объект Python и возвращает строку JSON.
import json
data = {'name': 'John', 'age': 30, 'city': 'New York'} # создание словаря с данными
json_string = json.dumps(data) # кодирование данных в формат JSON
print(json_string) # вывод строки JSON
Вывод:
{"name": "John", "age": 30, "city": "New York"}
Декодирование данных из формата JSON
Для декодирования данных из формата JSON в Python используется метод json.loads()
. Он принимает на вход строку JSON и возвращает объект Python.
import json
json_string = '{"name": "John", "age": 30, "city": "New York"}' # создание строки JSON
data = json.loads(json_string) # декодирование данных из формата JSON в объект Python
print(data) # вывод объекта Python
Вывод:
{'name': 'John', 'age': 30, 'city': 'New York'}
Запись данных в файл в формате JSON
Для записи данных в файл в формате JSON в Python используется метод json.dump()
. Он принимает на вход объект Python и объект файла, в который нужно записать данные в формате JSON.
import json
data = {'name': 'John', 'age': 30, 'city': 'New York'} # создание словаря с данными
with open('data.json', 'w') as f: # открытие файла для записи
json.dump(data, f) # запись данных в формате JSON в файл
Чтение данных из файла в формате JSON
Для чтения данных из файла в формате JSON в Python используется метод json.load()
. Он принимает на вход объект файла и возвращает объект Python.
import json
with open('data.json', 'r') as f: # открытие файла для чтения
data = json.load(f) # чтение данных из файла в формате JSON в объект Python
print(data) # вывод объекта Python
Вывод:
{'name': 'John', 'age': 30, 'city': 'New York'}
Примеры применения
Пример 1: Сохранение настроек в файл
import json
settings = {'language': 'en', 'theme': 'dark', 'font_size': 14} # создание словаря с настройками
with open('settings.json', 'w') as f: # открытие файла для записи
json.dump(settings, f) # запись настроек в формате JSON в файл
Код создает словарь settings
с тремя ключами: language
, theme
и font_size
, и их соответствующими значениями. Затем он открывает файл с именем settings.json
для записи и записывает данные из словаря settings
в формате JSON в этот файл с помощью метода json.dump()
. Если файл с таким именем не существует, то он будет создан.
Этот код может быть использован для сохранения настроек приложения пользователя в файл, который может быть загружен при запуске приложения для использования в качестве настроек по умолчанию.
Пример 2: Чтение настроек из файла
import json
with open('settings.json', 'r') as f: # открытие файла для чтения
settings = json.load(f) # чтение настроек из файла в формате JSON в объект Python
print(settings) # вывод объекта Python
Этот код открывает файл settings.json
для чтения и загружает настройки в формате JSON в объект Python settings
. Затем он выводит этот объект на экран. Предполагается, что файл settings.json
уже существует и содержит данные в формате JSON, которые можно декодировать в объект Python.
Пример 3: Отправка запроса с данными в формате JSON
import requests
import json
data = {'name': 'John', 'age': 30, 'city': 'New York'} # создание словаря с данными
response = requests.post('<https://example.com/api>', json=json.dumps(data)) # отправка запроса с данными в формате JSON
print(response.status_code) # вывод статуса ответа
В этом примере мы используем модуль requests
для отправки POST-запроса на https://example.com/api
с данными, закодированными в формате JSON. Метод json.dumps()
используется для кодирования словаря data
в формат JSON. Затем мы отправляем запрос с помощью метода requests.post()
. Наконец, мы выводим статус ответа с помощью свойства response.status_code
.
Пример 4: Получение ответа с данными в формате JSON
import requests
import json
response = requests.get('<https://example.com/api>') # отправка GET-запроса и получение ответа
data = json.loads(response.content) # декодирование данных из формата JSON в объект Python
print(data) # вывод объекта Python
В этом примере мы используем модуль requests
для отправки GET-запроса на https://example.com/api
. Затем мы декодируем данные из формата JSON в объект Python с помощью метода json.loads()
. Наконец, мы выводим полученный объект Python.
Заключение
Модуль json
в Python предоставляет простой и удобный способ работы с данными в формате JSON. Он позволяет не только кодировать и декодировать данные, но и записывать их в файлы и отправлять через сеть. Надеюсь, эта инструкция и примеры помогут вам понять, как использовать модуль json
в ваших проектах на Python.