Сохранение данных
205
мате JSON. Затем файл открывается в режиме записи, чтобы модуль
json
мог запи-
сать в него данные
. В точке
функция
json.dump()
используется для
сохранения
списка
numbers
в файле
numbers .json
.
Программа ничего не выводит, но давайте откроем файл
numbers .json
и посмотрим
на его содержимое. Данные хранятся в формате, очень похожем на код Python:
[2, 3, 5, 7, 11, 13]
А теперь напишем следующую программу, которая использует
json.load()
для чтения списка обратно в память:
number_reader.py
import json
filename = 'numbers.json'
with open(filename) as f_obj:
numbers = json.load(f_obj)
print(numbers)
В точке
для чтения данных используется тот же файл, в который эти данные
были записаны. На этот раз файл открывается в режиме чтения, потому что Python
нужно только прочитать данные из файла
. В точке
функция
json.load()
ис-
пользуется для загрузки информации из
numbers .json
; эта информация сохраняется
в переменной
numbers
.
Наконец, программа выводит прочитанный список. Как видите, этот тот же список,
который
был создан в программе
number_writer .py
:
[2, 3, 5, 7, 11, 13]
Модуль
json
позволяет организовать простейший обмен данными между про-
граммами.
Сохранение и чтение данных, сгенерированных
пользователем
Сохранение с использованием модуля
json
особенно полезно при работе с данны-
ми, сгенерированными пользователем, потому что без сохранения эта информа-
ция будет потеряна при остановке программы. В следующем примере программа
запрашивает у пользователя имя при первом запуске программы и «вспоминает»
его при повторных запусках.
Начнем с сохранения имени пользователя:
remember_me.py
import json
username = input("What is your name? ")
filename = 'username.json'
with open(filename, 'w') as f_obj:
json.dump(username, f_obj)
print("We'll remember you when you come back, " + username +
"!")