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

How Read Write Json Files Python



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

О JSON

JSON (JavaScript Object Notation) - это формат файла и стандарт хранения данных, в котором для хранения и обмена данными используются пары ключ-значение. Это наиболее широко используемый формат обмена данными, часто встречающийся в RESTful API, облегченных базах данных, файлах конфигурации и другом автономном или онлайн-программном обеспечении, которое должно хранить, извлекать и обмениваться данными. Большинство языков программирования включают библиотеки для анализа и записи данных JSON по умолчанию, а JSON - это формат данных, не зависящий от языка программирования. Значения, хранящиеся в файле JSON или полезной нагрузке, обычно содержат строки, числа и сериализуемые типы данных, такие как списки (массивы).







Словари JSON и Python

Данные JSON в Python преобразуются в объект словаря с помощью метода загрузки. Часто можно увидеть, что некоторые люди приравнивают данные json и словарь Python, поскольку синтаксис для их определения почти одинаков. Однако данные json - это не что иное, как текстовая строка, структурированная с жестким синтаксисом, а словарь python - это объект структуры данных, хранящийся в памяти. Если вы хотите сохранить данные словаря в текстовом файле или отправить их в другую программу, отличную от Python, вам придется сначала преобразовать их в текстовую строку (байты). Эта выгруженная / преобразованная текстовая строка определяется в стандартном синтаксисе JSON, а процесс преобразования словаря python в строку, совместимую с json, называется сериализацией.



Чтение и сброс данных JSON в Python

Данные JSON могут быть получены в виде ответа от сервера, считаны из файла, вырезаны из параметров запроса URL и т. Д. В этой статье основное внимание будет уделено чтению данных json из локально сохраненного файла. Предположим, что файл test.json содержит следующие данные:



{'codename': 'Eoan Ermine', 'version': 'Ubuntu 19.10'}

Чтобы прочитать файл test.json на python, вы можете использовать приведенный ниже код:





Импортироватьjson

с участием открытым ('test.json') в качествеf:
данныезнак равноjson.нагрузка(ж)

свалказнак равноjson.свалки(данные)

Распечатать (данные)
Распечатать (тип(данные))
Распечатать (свалка)
Распечатать (тип(свалка))

Первая строка в приведенном выше коде импортирует модуль json. В следующей строке с open используется для безопасного чтения содержимого файла. Внутри блока with open метод json.load используется для чтения и сохранения содержимого файла в переменной данных. Данные, загруженные на предыдущем шаге, преобразуются обратно в строку json с помощью метода json.dump. Выполнение приведенного выше кода приведет к следующему результату:

{'кодовое название':'Эоан Горностай', 'версия':'Ubuntu 19.10'}
<класс 'дикт'>
{'кодовое название':'Эоан Горностай', 'версия':'Ubuntu 19.10'}
<класс 'str'>

Обратите внимание, что в приведенных выше выходных данных метод json.load считывает необработанные данные json в словарь Python, а методы json.dumps преобразуют словарь в строку, совместимую со структурой JSON. После преобразования объекта JSON в объект словаря Python вы можете использовать встроенные методы словаря Python для обработки данных. Приведенный выше пример довольно прост и не включает массивы в данные JSON или вложенные значения. Однако в Python вы можете обрабатывать эти значения, как любые другие вложенные словари и списки.



Сортировка и удобная печать данных JSON

Метод json.dump поддерживает некоторые необязательные параметры для сортировки ключей и красивой печати вывода для улучшения читаемости.

Импортироватьjson

с участием открытым ('test.json') в качествеf:
данныезнак равноjson.нагрузка(ж)

свалказнак равноjson.свалки(данные,sort_keysзнак равноПравда,отступзнак равно4)
Распечатать (свалка)

Приведенный выше код покажет следующий результат:

{
'codename': 'Eoan Ermine',
'версия': 'Ubuntu 19.10'
}

Преобразования типов данных

В приведенном ниже списке показано, как значения JSON преобразуются в объекты Python и наоборот.

JSON Python
нить п
количество int или float
правда, ложь Верно, неверно
нулевой Никто
множество список
объект диктовать

Модуль командной строки Json.tool

Python включает удобную утилиту командной строки json.tool, которую можно использовать для проверки и красивой печати строк и файлов JSON.

$ echo'{' кодовое имя ':' Эоан Эрмин ',' версия ':' Ubuntu 19.10 '}'| python3 -m json.орудие труда

Выполнение приведенной выше команды покажет вам следующий результат:

{
'codename': 'Eoan Ermine',
'версия': 'Ubuntu 19.10'
}

Вы также можете использовать json.tool с файлами JSON. Замените in_file и out_file в приведенной ниже команде желаемыми значениями:

$ python3 -m json.орудие трудаin_file out_file

Кроме красивой печати, сортировки и проверки данных JSON, json.tool больше ничего не делает. Поэтому, если вы хотите манипулировать любыми данными JSON, вам нужно написать свой собственный код, используя встроенный модуль JSON.