JSON – веб-формат обмена данными, легкий для человека и компьютера. В этой статье мы подробно рассмотрим, как производить манипуляции с данными в формате JSON с использованием языка программирования Python.

Введение в JSON и Python

JSON – это формат обмена данными, основанный на JavaScript, однако он широко применяется во многих областях программирования. Python, с другой стороны, является высокоуровневым языком программирования, который благодаря своей простоте и мощным библиотекам стал одним из наиболее популярных языков для работы с информацией, веб-разработки и многих других задач.

ОНЛАЙН-ПРАКТИКУМ
ЗАПУСК нейросети DEEPSEEK R1 ЛОКАЛЬНО НА СВОЕМ КОМПЬЮТЕРЕ
ЧТО БУДЕТ НА ОБУЧЕНИИ?
  • ПОКАЖЕМ, КАК РАЗВЕРНУТЬ МОДЕЛЬ нейросети DEEPSEEK R1 ПРЯМО НА СВОЁМ КОМПЬЮТЕРЕ
  • Где и как применять? Потестируем модель после установки на разных задачах
  • Как дообучить модель под себя?

Работа с JSON в Python

Для работы с JSON в Python используется стандартный модуль json, который предоставляет простой интерфейс для кодирования и декодирования информации в заданном формате. Модуль поддерживает преобразование между форматом и соответствующими типами записей Python, такими как словари, списки, строки, числа, а также значениями True, False и None.

Сериализация данных

Сериализация (или кодирование) – преобразование объектов Пайтон в джисон. Для строки используется json.dumps(), а для файла json.dump().

Пример кода:

import json

data = {

"name": "John Doe",

"age": 30,

"is_employee": True,

"skills": ["Python", "JSON", "Data Analysis"]

}

# Сериализация в строку

json_string = json.dumps(data, indent=4)

print(json_string)

# Сериализация в файл

with open("data.json", "w") as write_file:

json.dump(data, write_file, indent=4)

Десериализация данных

Десериализация (или парсинг) – это процесс чтения данных и преобразования их в объекты Python. Используются методы json.loads() для чтения из строки и json.load() для чтения из файла.

Пример кода:

import json

# Десериализация из строки

json_string = '{"name": "Jane Doe", "age": 29, "is_employee": false}'

data = json.loads(json_string)

print(data)

# Десериализация из файла

with open("data.json", "r") as read_file:

data = json.load(read_file)

print(data)

Манипуляция данными JSON

Манипулирование данными JSON в Python во многом схоже с работой со словарями, поскольку объекты преобразуются в словари. Это означает, что можно добавлять, изменять и удалять ключи и значения, используя стандартные методы и операции словарей.

Пример

data = {

"name": "John Doe",

"age": 30,

"skills": ["Python", "JSON"]

}

# Добавление нового ключа

data["location"] = "New York"

# Изменение значения по ключу

data["age"] = 31

# Удаление ключа

del data["skills"]

print(json.dumps(data, indent=4))

Дополнительные возможности

Давайте более подробно рассмотрим каждый метод глубокой манипуляции структурами JSON в Python.

Работа со сложными структурами

Он часто содержит вложенные структуры, такие как словари внутри списка или списки внутри словарей. Для работы с такими структурами важно понимать, как итерировать и изменять записи на разных уровнях вложенности.

Пример:

data = {

"employees": [

{"name": "John Doe", "skills": ["Python", "Data Analysis"]},

{"name": "Jane Smith", "skills": ["Java", "Cloud Computing"]}

]

}

# Добавление нового навыка сотруднику

data["employees"][0]["skills"].append("Machine Learning")

# Итерация по сотрудникам и их навыкам

for employee in data["employees"]:

print(f'{employee["name"]} has the following skills: {", ".join(employee["skills"])}')

Обработка исключений

При десериализации важно обрабатывать возможные исключения, чтобы предотвратить сбои приложения из-за некорректности.

Пример:

import json

json_string = '{"name": "John Doe", age: 30}'

try:

data = json.loads(json_string)

except json.JSONDecodeError:

print("Ошибка декодирования")

Работа с JSON Schema

JSON Schema позволяет определить структуру и правила ваших записей. Это полезно для валидации перед обработкой.

Для использования в Python можно воспользоваться сторонней библиотекой, например, jsonschema.

Пример:

from jsonschema import validate

from jsonschema.exceptions import ValidationError

schema = {

"type": "object",

"properties": {

"name": {"type": "string"},

"age": {"type": "number"}

},

"required": ["name", "age"]

}

data = {"name": "John Doe", "age": "не число"}

try:

validate(instance=data, schema=schema)

except ValidationError as e:

print(f"Ошибка валидации: {e.message}")

Использование Pandas

Библиотека Pandas позволяет удобно работать с форматом, особенно когда речь идет о сложных и объемных датасепх.

Пример:

import pandas as pd

# Загрузка в DataFrame

df = pd.read_json("data.json")

# Представление данных в виде

print(df.to_json(orient="records", lines=True))

Заключение

Работа с форматом JSON в Python благодаря стандартной библиотеке json является простой и интуитивно понятной. Сериализация и десериализация данных, а также их манипуляция, не требуют сложных манипуляций или использования сторонних модулей. Это делает Python отличным инструментом для работы с записями в формате, будь то веб-разработка, автоматизация задач, научные исследования или любые другие области, где требуется обмен информацией в сети.

Большой практикум
ЗАМЕНИ ВСЕ НЕЙРОСЕТИ НА ОДНУ — PERPLEXITY
ПОКАЖЕМ НА КОНКРЕТНЫХ КЕЙСАХ
  • Освой нейросеть Perplexity и узнай, как пользоваться функционалом остальных ИИ в одном
  • УЧАСТВОВАТЬ ЗА 0 РУБ.
  • Расскажем, как получить подписку
Участвовать бесплатно
ОНЛАЙН-ПРАКТИКУМ
ЗАПУСК нейросети DEEPSEEK R1 ЛОКАЛЬНО НА СВОЕМ КОМПЬЮТЕРЕ
ЧТО БУДЕТ НА ОБУЧЕНИИ?
  • ПОКАЖЕМ, КАК РАЗВЕРНУТЬ МОДЕЛЬ нейросеть DEEPSEEK R1 ПРЯМО НА СВОЁМ КОМПЬЮТЕРЕ
Участвовать бесплатно