Книга «Изучаем Python»



Pdf көрінісі
бет109/238
Дата07.01.2022
өлшемі7,86 Mb.
#18670
түріКнига
1   ...   105   106   107   108   109   110   111   112   ...   238
Байланысты:
2 5343781172763690906

ПРИМЕЧАНИЕ

Формат  JSON  (JavaScript  Object  Notation)  был  изначально  разработан  для  JavaScript .  Впрочем, 

с того времени он стал использоваться во многих языках, включая Python .

Функции json .dump() и json .load()

Напишем короткую программу для сохранения набора чисел и другую программу, 

которая будет читать эти числа обратно в память. Первая программа использует 

функцию 

json.dump()

, а вторая — функцию 

json.load()

.

Функция 


json.dump()

 получает два аргумента: сохраняемые данные и объект фай-

ла, используемый для сохранения. В следующем примере 

json.dump()

 используется 

для сохранения списка чисел:



number_writer.py

import json

numbers = [2, 3, 5, 7, 11, 13]

filename = 'numbers.json'



with open(filename, 'w') as f_obj:

    json.dump(numbers, f_obj)



Программа импортирует модуль 

json


 и создает список чисел для работы. В точке  

выбирается имя файла для хранения списка. Обычно для таких файлов принято 

 использовать расширение 

 .json


, указывающее, что данные в файле хранятся в фор-


Сохранение данных    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!

А теперь напишем другую программу, которая приветствует пользователя по ранее 

сохраненному имени:



Достарыңызбен бөлісу:
1   ...   105   106   107   108   109   110   111   112   ...   238




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет