Функции json.dump() и json.load()
Напишем короткую программу для сохранения набора чисел и другую программу, которая будет читать эти числа обратно в память. Первая программа использует функцию json.dump(), а вторая — функцию json.load().
Функция json.dump() получает два аргумента: сохраняемые данные и объект файла, используемый для сохранения. В следующем примере json.dump() используется для сохранения списка чисел:
number_writer.py
import json
numbers = [2, 3, 5, 7, 11, 13]
(1) filename = 'numbers.json'
(2)with open(filename, 'w') as f_obj:
(3) . .json.dump(numbers, f_obj)
Программа импортирует модуль json и создает список чисел для работы. В точке (1) выбирается имя файла для хранения списка. Обычно для таких файлов принято использовать расширение .json, указывающее, что данные в файле хранятся в формате JSON. Затем файл открывается в режиме записи, чтобы модуль json мог записать в него данные (2). В точке (3) функция json.dump() используется для сохранения списка numbers в файле numbers.json.
Программа ничего не выводит, но давайте откроем файл numbers.json и посмотрим на его содержимое. Данные хранятся в формате, очень похожем на код Python:
[2, 3, 5, 7, 11, 13]
А теперь напишем следующую программу, которая использует json.load() для чтения списка обратно в память:
number_reader.py
import json
(1) filename = 'numbers.json'
(2)with open(filename) as f_obj:
(3) . .numbers = json.load(f_obj)
. .
print(numbers)
В точке (1) для чтения данных используется тот же файл, в который эти данные были записаны. На этот раз файл открывается в режиме чтения, потому что Python нужно только прочитать данные из файла (2). В точке (3) функция json.load() используется для загрузки информации из numbers.json; эта информация сохраняется в переменной numbers.
Наконец, программа выводит прочитанный список. Как видите, этот тот же список, который был создан в программе number_writer.py:
[2, 3, 5, 7, 11, 13]
Модуль json позволяет организовать простейший обмен данными между программами.