Работа с JSON

02.02.2023
618
Узнайте, как использовать модуль json в Python для работы с данными в формате JSON. Мы рассмотрим основные функции модуля и представим 4 практических примера применения с комментариями в коде. Примеры включают создание файла настроек, чтение настроек из файла, отправку и получение запросов с данными в формате JSON.

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.