Перед началом работы с файлами json обязательно ознакомьтесь с конспектом по общим принципам работы с файлами в Python.
Примеры этого конспекта в файле Jupyter Notebook
JSON (Script Object Notation) — текстовый формат обмена данными, основанный на JavaScript. Он широко используется для передачи структурированных данных между клиентом и сервером.
Основные характеристики формата JSON:
Синтаксис JSON состоит из пар ключ-значение, где ключ – это строка, а значение может быть строкой, числом, логическим значением, массивом, объектом или null. Пример: {“name”: “Сергей”, “age”: 48, “country”: “Russian”}
Типы данных: JSON поддерживает следующие типы данных: строки (заключены в двойные кавычки), числа, логические значения, массивы, значение null.
Преимущества: Читаемость – JSON имеет простой и понятный синтаксис, Легкость передачи данных – JSON является текстовым форматом, который легко передается по сети, Поддержка различных языков – JSON поддерживается многими языками программирования.
JSON широко используется в веб-разработке для передачи данных между клиентской и серверной частями приложений. Он также используется в API для предоставления структурированных данных.
Модуль (библиотека) json в Python предоставляет функции для работы с данными в формате JSON, в частности для сериализации и десериализации. Этот модуль широко используется при работе с веб-сервисами, обменом данными и сохранении информации.
Сериализация – это процесс преобразования объекта в формат, который может быть сохранен или передан через сеть, и восстановления объекта из этого формата обратно в память.
Десериализация – это процесс восстановления объекта из сериализованного формата (такого как последовательность байтов или текстовая строка). Во время десериализации, данные, которые были сериализованы, восстанавливаются в исходный объект с сохранением его структуры и значений. Десериализация особенно полезна, когда данные, которые были сохранены или переданы, необходимо восстановить и использовать в программе. Например, если вы сериализовали объект в формате JSON и сохраняете его в файле, вы можете впоследствии прочитать этот файл, выполнить десериализацию и получить исходный объект с сохраненными значениями. В Python некоторые библиотеки, такие как json, pickle, xml.etree.ElementTree, предоставляют функции для десериализации сериализованных данных и восстановления объектов из различных форматов. При десериализации, данные в формате JSON, XML или других форматах преобразуются обратно в объекты Python, которые можно использовать в программе.
В модуле json есть несколько основных функций:
json.dump(): Эта функция записывает объект Python в файл JSON.
json.dumps(): Эта функция преобразует объект Python в строку JSON.
json.load(): Эта функция читает файл JSON и преобразует его в объект Python.
json.loads(): Эта функция преобразует строку JSON в объект Python.
Сериализация объекта Python в формат JSON и записи его в файл
Пример записи в файл
import json
infa = {"name": "Сергей", "age": 48, "country": "Russian"}
with open("myfail.json", "w", encoding="UTF-8") as file:
json.dump(infa, file, indent=4, ensure_ascii=False)
В начале кода импортируем библиотеку json, которая предоставляет функции для работы с данными в формате JSON.
используем функцию json.dump с параметрами:
infa – obj: Обязательный параметр, представляющий объект, который нужно сериализовать в JSON.
file – fp: Обязательный параметр, представляющий файловый объект, в который будет записан JSON.
ensure_ascii: Необязательный параметр, по умолчанию True. Если True, то все символы, не являющиеся ASCII, будут преобразованы в escape-последовательности. Если False, то такие символы будут оставлены неизменными.
indent: используется для задания количества пробелов или символов табуляции для отступа при сериализации объекта в JSON формат.
separators: Необязательный параметр, представляющий кортеж, содержащий разделители, которые будут использоваться при сериализации. По умолчанию используются запятые и двоеточия.
Десериализация данных из JSON-файла и преобразования их в объекты Python
Пример
import json
with open("myfail.json", "r", encoding="UTF-8") as file:
data=json.load(file)
print(data)
Используем функцию json.load() , которая позволяет загружать данные из JSON-файла и преобразовывать их в объекты Python.
Применяем один обязательный параметр file, который представляет открытый файл, содержащий данные JSON.