很多时候,我们需要保存用户提供的信息,一种简单的方式时通过模块json来存储数据。
JSON格式最初是为了JavaScript开发的,但随后成了一种常见格式,被众多编程语言采用。
使用json.dump()
可以轻松的存储数据,json.dump()
接受两个参数:要存储的数据以及可用于存储数据的文件==对象==,很多时候在提供第二个参数时,都会错误的提供了文件名称,而不是文件==对象==,例如:
import json
username = '111'
with open('name.json','w') as name_obj:
json.dump(username,name.json)
这时,就会报错:
NameError: name 'name' is not defined
原因是我们错误向json.dump()
传入了参数name.json
,这并不是要存储数据的文件==对象==,应该传入参数name_obj
。
import json
username = '111'
with open('name.json','w') as name_obj:
json.dump(username,name_obj)
同时,也要注意在使用json.dump()
存储数据时,函数open()
需要传递参数'w'
,以便获得写入权限。
同样的,使用json.load()
时,传入的也是文件==对象==:
import json
with open('name.json') as name_obj:
username_tmp = json.load(name_obj)
print(username_tmp)
输出:
111