Чем отличается словарь в Python от формата JSON?

Ответ

Словарь (dict) — это встроенная структура данных в Python для хранения пар "ключ-значение" в памяти, а JSON (JavaScript Object Notation) — это текстовый формат для обмена данными между системами.

Несмотря на внешнее сходство, у них есть ключевые технические различия:

Характеристика Словарь Python (dict) JSON
Сущность Объект в памяти, структура данных Текстовая строка, формат данных
Ключи Любой хешируемый тип (число, строка, кортеж) Только строки в двойных кавычках
Типы значений Любой объект Python Строки, числа, true, false, null, массивы, другие JSON-объекты
Синтаксис Допускаются одинарные кавычки, висячие запятые Строгий синтаксис: только двойные кавычки, нет висячих запятых
Комментарии Не поддерживаются Не поддерживаются

Преобразование: сериализация и десериализация

Для преобразования между этими форматами используется модуль json.

  • Сериализация (dictjson): преобразование объекта Python в строку JSON с помощью json.dumps().
  • Десериализация (jsondict): парсинг строки JSON в объект Python с помощью json.loads().
import json

# Исходный словарь Python
python_dict = {
    "name": "Alice",
    "age": 30,
    "is_active": True,
    1: "numeric_key" # Ключ - число, недопустим в JSON
}

# 1. Сериализация в JSON
# Обратите внимание: ключ 1 будет преобразован в строку "1"
json_string = json.dumps(python_dict, indent=4)

print("--- JSON строка ---")
print(json_string)
# Вывод:
# {
#     "name": "Alice",
#     "age": 30,
#     "is_active": true,
#     "1": "numeric_key"
# }

# 2. Десериализация обратно в словарь Python
back_to_dict = json.loads(json_string)

print("n--- Словарь после десериализации ---")
print(back_to_dict)
# Вывод:
# {'name': 'Alice', 'age': 30, 'is_active': True, '1': 'numeric_key'}

Итог: dict используется для работы с данными внутри программы, а JSON — для их передачи по сети или сохранения в файл.