局域网站建设,完美一键优化,青州做网站电话,镇海区建设交通局网站进不去了目录
❤ json.dump()存储数据
❤ json.laod()读取数据
❤ 保存和读取用户生成的数据
❤ 重构 JSON(JavaScript Object Notation)格式最初是为JavaScript开发的#xff0c;但随后成了一种常见格式#xff0c;被包括Python在内的众多语言采用
❤ json.dump()存储数据…目录
❤ json.dump()存储数据
❤ json.laod()读取数据
❤ 保存和读取用户生成的数据
❤ 重构 JSON(JavaScript Object Notation)格式最初是为JavaScript开发的但随后成了一种常见格式被包括Python在内的众多语言采用
❤ json.dump()存储数据
函数json.dump() 接受两个实参要存储的数据以及可用于存储数据的文件对象语法json.dump(存储数据,文件名) import json
numbers [1,2,3,4,5,6]
file_name TestDump.json
with open(file_name,w) as file_obj:json.dump(numbers,file_obj) ❤ json.laod()读取数据 语法json.load(文件名) 下面是我们读取数据文件TestDump.json内容的程序
import json
file_name TestDump.json
with open(file_name) as file_obj:numbers json.load(file_obj)
print(numbers)
❤ 保存和读取用户生成的数据
对于用户生成的数据使用json保存他们大有裨益因为如果不以某种方式进行存储等程序停止运行时用户的数据将会丢失。
import json
username input(what is your name?)filename username.json
with open(filename,w) as file_obj:json.dump(username,file_obj)print(we will remeber when you come back, username!)
输出: what is your name?olover we will remeber when you come back,olover! 我们提示输入用户名并将其存储在一个变量中接下来我们又调用json.dump(),并将用户名和一个文件对象传递给他从而将用户名存储在文件中。
import json
file_name username.json
with open(file_name) as f_obj:username json.load(f_obj)print(Welcome back,username!) 输出: Welcome back,olover! 我们将两个程序合并到一个程序中。在这个程序运行时我们将尝试从文件username.json中获取用户名因此我们首先编写一个尝试恢复用户名的try代码块。当文件不存在的时候我们就在except中提示输入用户名并将其存储到username.json文件中以便程序再次运行时获取它。
import json
#如果以前存储了用户名就加载它否则就提示用户输入用户名
file_name username.json
try:with open(file_name) as f_obj:username json.load(f_obj)
except FileNotFoundError:username input(what is your name?)with open(file_name,w) as f_obj:json.dump(username,f_obj)print(well remeber you when you come back,username!)
else:print(Welcome back,username!) 输出: Welcome back,olover! ❤ 重构
你经常会遇到这样的情况代码能够正确运行但可做进一步的改进将代码划分为一系列完成具体工作的函数这个过程称为重构
import json
def greet_user():问候用户并指出其名字file_name username.jsontry:with open(file_name) as f_obj:username json.load(f_obj)except FileNotFoundError:username input(what is your name?)with open(file_name,w) as f_obj:json.dump(username,f_obj)print(well remeber you when you come back,username!)else:print(Welcome back,username!)
#调用函数
greet_user()
或许有人觉得上面的程序执行的任务太多了我们不想它执行那么多任务我们首先将获取存储的用户名的代码移到另外一个函数中
提取存在文件时执行操作
import json
def get_stored_username():如果存储了用户名就获取它file_name username.jsontry:with open(file_name) as f_obj:username json.load(f_obj)except FileNotFoundError:return Noneelse:return username
def greet_user():问候用户并指出其名字username get_stored_username()if username:print(Welcome back, username !)else:username input(what is your name?)file_name username.jsonwith open(file_name, w) as f_obj:json.dump(username, f_obj)print(well remeber you when you come back, username !)
#调用函数
greet_user()
新增的函数get_stored_username()目标很明确如果文件存储了用户名这个函数就获取并返回它如果文件不存在这个函数就返回None,这是一种不错的方法函数要么返回预期的值要么返回None.
提取没有存储用户名时提示用户输入的操作
上面的程序还可以继续优化将greet_user()中的另外一块代码提取出来将没有存储用户名时提示用户输入的代码放在一个独立的函数中
import json
def get_stored_username():如果存储了用户名就获取它file_name username.jsontry:with open(file_name) as f_obj:username json.load(f_obj)except FileNotFoundError:return Noneelse:return username
def get_new_username():提示用户输入用户名username input(what is your name?)file_name username.jsonwith open(file_name,w) as f_obj:json.dump(username,f_obj)return username
def greet_user():问候用户并指出其名字username get_stored_username()if username:print(Welcome back, username !)else:username get_new_username()print(well remeber you when you come back, username !)
#调用函数
greet_user()