Процесс преобразования объекта Python в формат JSON называется сериализацией. Я создал веб-сайт с помощью Django. Мне нужно было принимать пользовательские данные через форму и отправлять их на внутренний сервер для дальнейшей обработки.
Данные отправлялись на сервер через API. Поскольку пользовательские данные были представлены в виде словаря, мы не могли отправить их по сети в таком виде. Для этого был выбран формат JSON, который позволяет передавать данные по сети.
В Python я использовал функцию json из модуля Python для преобразования пользовательских данных в формат JSON и отправки их на сервер.
Словарь в Python представляет собой набор пар ключ-значение, где каждый ключ уникален и может иметь значение любого типа данных, включая другой словарь. В случае, когда словарь содержит в себе другой словарь, это называется вложенным словарём.
Например, это словарь {‘name’:’Caleb’, ‘age’:34′}. Чтобы создать этот вложенный словарь, добавьте ключ со значением в качестве словаря, например {‘name’:’Caleb’, ‘ возраст’:34, адрес:{‘почтовый индекс’:23456, ‘город’:’Чикаго’}}.
Вы должны преобразовать эти словарные записи в JSON для нотации объектов JavaScript. Это формат, в котором данные хранятся и обмениваются.
Преобразование словаря в JSON
Давайте возьмем простой словарь и преобразуем его в JSON.
user = {'name':'Smith','age':40, 'hobby':'riding'}
Чтобы преобразовать словарь user в формат JSON, нужно воспользоваться модулем json, который позволяет кодировать и декодировать данные в формате JSON.
Этот модуль входит в стандартную библиотеку Python, поэтому его нужно импортировать в свою среду. Для этого используйте следующий код:
import json
Модуль json имеет метод dumps(), с помощью которого вы преобразуете данный объект Python в строку в формате JSON.
Итак, чтобы преобразовать словарь «пользователь» в JSON, передайте этот словарь в функцию dumps(), как показано ниже.
dict_to_json = json.dumps(user)
Посмотрите на результат: функция преобразует заданный словарь «user» в формат JSON и сохраняет его в переменной «dict_to_json». В результате возвращается словарь со следующими значениями: «имя»: «Смит», «возраст»: 40, «хобби»: «верховая езда».
Пользовательский словарь не содержит вложенных элементов. Теперь вы понимаете, как преобразовать обычный словарь в JSON, используя функцию json.dumps().
Как создать вложенный Dict в JSON
Как показано ниже, измените «пользовательский» словарь, чтобы создать вложенный словарь.
user = {'name':'Smith','age':40, 'preferences':{'music':'classical', 'food':'American'}}
Теперь передайте вложенный словарь user в json.dumps(), как показано в коде ниже.
import json nested_dict_to_json = json.dumps(user) print(nested_dict_to_json)
Посмотрите на результат: функция json.dumps(user) также преобразовала словарь «user» со вложенными данными в формат JSON.
Функция json.dumps позволяет быстро преобразовывать сложные вложенные словари в формат JSON. Вам достаточно передать словарь в функцию json.dumps — и всё будет готово.