存储数据
使用json.dump()和json.load()
json.dump()存储数据
import json
numbers = [2,3,5,7,11,13]
filename = 'number.json' #使用文件扩展名.json来指出文件存储的数据为JSON格式
with open(filename,'w') as f_obj:
json.dump(numbers,f_obj) #使用json.dump()函数将数字列表存储到文件当中
json.load()读入数据
import json
filename = 'number.json'
with open(filename) as f_obj:
numbers = json.load(f_obj) #使用json.load()函数加载number.json中的信息
print(numbers) #输出文件的内容
保存和读取用户生成的数据
import json
filename = 'username.json'
try:
with open(filename) as f_obj:
username = json.load(f_obj)
except FileNotFoundError:
username = input("What is your name? ")
with open(filename,'w') as f_obj:
json.dump(username,f_obj) #json.dump()函数接受两个参数:要存储的数据以及可用于存储数据的文件对象
print("We'll remember you when you come back, "+username+"!")
else:
print("Welcome back, "+username+"!")
#代码首次运行将进入except代码段,除非已经存在文件了
#第二次运行代码将直接使用else中的代码段
重构
重构:将代码划分为一系列完成具体工作的函数
重构:让代码更清晰,更易于理解,更容易扩展
import json
def get_stored_username():
"""Get stored username if available."""
filename = 'username.json'
try:
with open(filename) as f_obj:
username = json.load(f_obj)
except FileNotFoundError:
return None
else:
return username
def get_new_username():
"""Prompt for a new username."""
username = input("What is your name? ")
filename = 'username.json'
with open(filename, 'w') as f_obj:
json.dump(username, f_obj)
return username
def greet_user():
"""Greet the user by name."""
username = get_stored_username()
if username:
print("Welcome back, " + username + "!")
else:
username = get_new_username()
print("We'll remember you when you come back, " + username + "!")
greet_user()