О JSON
JSON (JavaScript Object Notation) - это формат файла и стандарт хранения данных, в котором для хранения и обмена данными используются пары ключ-значение. Это наиболее широко используемый формат обмена данными, часто встречающийся в RESTful API, облегченных базах данных, файлах конфигурации и другом автономном или онлайн-программном обеспечении, которое должно хранить, извлекать и обмениваться данными. Большинство языков программирования включают библиотеки для анализа и записи данных JSON по умолчанию, а JSON - это формат данных, не зависящий от языка программирования. Значения, хранящиеся в файле JSON или полезной нагрузке, обычно содержат строки, числа и сериализуемые типы данных, такие как списки (массивы).
Словари JSON и Python
Данные JSON в Python преобразуются в объект словаря с помощью метода «load». Часто можно увидеть, что некоторые люди приравнивают данные json к словарю Python, поскольку синтаксис для их определения почти одинаков. Однако данные json - это не что иное, как текстовая строка, структурированная в жестком синтаксисе, а словарь python - это объект структуры данных, хранящийся в памяти. Если вы хотите сохранить данные словаря в текстовом файле или отправить их в другую программу, отличную от Python, вам придется сначала преобразовать их в текстовую строку (байты). Эта выгруженная / преобразованная текстовая строка определяется в стандартном синтаксисе JSON, а процесс преобразования словаря python в строку, совместимую с json, называется сериализацией.
Чтение и сброс данных JSON в Python
Данные JSON могут быть получены как ответ от сервера, считаны из файла, вырезаны из параметров запроса URL и т. Д. В этой статье основное внимание будет уделено чтению данных json из локально сохраненного файла. Предположим, что «тест.json »содержит следующие данные:
"codename": "Eoan Ermine", "version": "Ubuntu 19.10 "Прочитать тест.json в python, вы можете использовать приведенный ниже код:
импортировать jsonс открытым ("тест.json ") как f:
данные = json.нагрузка (f)
дамп = json.свалки (данные)
печать (данные)
печать (тип (данные))
печать (дамп)
print (тип (дамп))
Первая строка в приведенном выше коде импортирует модуль json. В следующей строке «с открытым» используется для безопасного чтения содержимого файла. В блоке с открытым кодом json.load »используется для чтения и сохранения содержимого файла в переменной« data ». Данные, загруженные на предыдущем шаге, преобразуются обратно в строку json с использованием «json.дамп »метод. Выполнение приведенного выше кода приведет к следующему результату:
'codename': 'Eoan Ermine', 'version': 'Ubuntu 19.10 '"codename": "Eoan Ermine", "version": "Ubuntu 19.10 "
Обратите внимание на вывод выше, что «json.load »считывает необработанные данные json в словарь Python, в то время как« json.dumps »преобразует словарь в строку, совместимую со структурой JSON. После преобразования объекта JSON в объект словаря Python вы можете использовать встроенные методы словаря Python для обработки данных. Приведенный выше пример довольно простой и не включает массивы в данных JSON или вложенные значения. Однако внутри python вы можете обрабатывать эти значения, как любые другие вложенные словари и списки.
Сортировка и удобная печать данных JSON
«Json.dump »поддерживает некоторые дополнительные параметры для сортировки ключей и красивой печати вывода для улучшения читаемости.
импортировать jsonс открытым ("тест.json ") как f:
данные = json.нагрузка (f)
дамп = json.дампы (данные, sort_keys = True, indent = 4)
печать (дамп)
Приведенный выше код покажет следующий результат:
"codename": "Eoan Ermine",
"версия": "Ubuntu 19.10 "
Преобразования типов данных
В приведенном ниже списке показано, как значения JSON преобразуются в объекты Python и наоборот.
JSON | Python |
нить | ул |
номер | int или float |
правда, ложь | Верно, неверно |
ноль | Никто |
множество | список |
объект | диктовать |
Json.инструмент Модуль командной строки
Python включает удобную утилиту командной строки «json.инструмент », который можно использовать для проверки и удобной печати строк и файлов JSON.
$ echo '"codename": "Eoan Ermine", "version": "Ubuntu 19.10 " '| python3 -m json.инструментВыполнение приведенной выше команды покажет вам следующий результат:
"codename": "Eoan Ermine",
"версия": "Ubuntu 19.10 "
Вы также можете использовать json.инструмент с файлами JSON. Замените in_file и out_file в приведенной ниже команде желаемыми значениями:
$ python3 -m json.инструмент in_file out_fileПомимо красивой печати, сортировки и проверки данных JSON, json.инструмент больше ничего не делает. Поэтому, если вы хотите манипулировать любыми данными JSON, вам нужно написать свой собственный код, используя встроенный модуль JSON.