数据存储
使用场景:
程序都把用户提供的信息存储在列表和字典等数据结构 中。用户关闭程序时,几乎总是要保存他们提供的信息。一种简单的方式是使用模 块 json 来存储数据。
1.模块json 让你能够将简单的Python数据结构转储到文件中,并在程序再次运行时 加载该文件中的数据
2.你还可以使用json 在Python程序之间分享数据。
3.JSON数据格式是许多编程语言相互传递数据的通用格式
4.通常使用文件扩展名.json来指出文件存储的数据为JSON格式。
使用json.dump() 和json.load()
- 使用json.dump() :存储数据,使用 json.load() 进行加载数据
json.dump()
函数 json.dump() 接受两个实参:要存储的数据,以及可用于存储数据的文件对 象。
使用json.dump() 来存储数字列表:
import json
nums = {"key":8}
lists =[1,2,3,4,5,6]
dict = {"nums":nums,
"lists":lists,
}
filename = "nums.json"
with open(filename,"w") as f:
json.dump(dict, f)
nums.json文件的内容:
{"nums": {"key": 8}, "lists": [1, 2, 3, 4, 5, 6]}
json.load()
函数 json.dump() 接受一个实参:可用于存储数据的文件对象。
使用json.load() 来读取json文件中的数据:
import json
filename = "nums.json"
with open(filename,"r+") as f:
dict = json.load(f)
print(f'{type(dict)}:{dict}')
输出:
<class 'dict'>:{'nums': {'key': 8}, 'lists': [1, 2, 3, 4, 5, 6]}
可见json读取时会自动转化成相应的数据类型
用try-except-else来对处理不同情况:
import json
# 如果以前存储了用户名,就加载它。
# 否则,提示用户输入用户名并存储它。
filename = 'username.json'
try:
with open(filename) as f:
username = json.load(f)
except FileNotFoundError:
username = input("What is your name? ")
with open(filename, 'w') as f:
json.dump(username, f)
print(f"We'll remember you when you come back, {username}!")
else:
print(f"Welcome back, {username}!")