Ответ
Словарь (dict
) — это встроенная структура данных в Python для хранения пар "ключ-значение" в памяти, а JSON (JavaScript Object Notation) — это текстовый формат для обмена данными между системами.
Несмотря на внешнее сходство, у них есть ключевые технические различия:
Характеристика | Словарь Python (dict ) |
JSON |
---|---|---|
Сущность | Объект в памяти, структура данных | Текстовая строка, формат данных |
Ключи | Любой хешируемый тип (число, строка, кортеж) | Только строки в двойных кавычках |
Типы значений | Любой объект Python | Строки, числа, true , false , null , массивы, другие JSON-объекты |
Синтаксис | Допускаются одинарные кавычки, висячие запятые | Строгий синтаксис: только двойные кавычки, нет висячих запятых |
Комментарии | Не поддерживаются | Не поддерживаются |
Преобразование: сериализация и десериализация
Для преобразования между этими форматами используется модуль json
.
- Сериализация (
dict
→json
): преобразование объекта Python в строку JSON с помощьюjson.dumps()
. - Десериализация (
json
→dict
): парсинг строки 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 — для их передачи по сети или сохранения в файл.