Python

Как читать и писать файлы Json в Python

Как читать и писать файлы Json в Python
В этой статье объясняется, как обрабатывать файлы и данные JSON на языке программирования Python. Python поставляется со встроенным модулем «json», который упрощает и упрощает обработку данных JSON.

О 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.

Как использовать Xdotool для стимулирования щелчков мыши и нажатия клавиш в Linux
Xdotool - это бесплатный инструмент командной строки с открытым исходным кодом для имитации щелчков мыши и нажатия клавиш. В этой статье будет краткое...
5 лучших эргономичных компьютерных мышей для Linux
Вызывает ли длительное использование компьютера боль в запястье или пальцах?? Вы страдаете от скованности суставов и постоянно должны пожимать руки? В...
Как изменить настройки мыши и сенсорной панели с помощью Xinput в Linux
Большинство дистрибутивов Linux по умолчанию поставляются с библиотекой libinput для обработки событий ввода в системе. Он может обрабатывать события ...