Формат JSON (JavaScript Object Notation) был изначально разработан для JavaScript . Впрочем,
Сохранение данных
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 +
"!")
206 Глава 10 • Файлы
и исключения
В точке программа запрашивает имя пользователя для сохранения. Затем вы-
зывается функция
json.dump()
, которой передается имя пользователя и объект
файла; функция сохраняет имя пользователя в файле . Далее выводится сообще-
ние о том, что имя пользователя было сохранено :
What is your name? Eric
We'll remember you when you come back, Eric!
А теперь напишем другую программу, которая приветствует пользователя по ранее
сохраненному имени:
Достарыңызбен бөлісу: