json文件操作及异常捕获
2018-07-26 本文已影响175人
GHope
json文件
数据本地化:将数据保存到本地文件中
json文件(文本),就是文件后缀是.json的文件。内容必须是json格式的内容
json格式:
1、内容是字符串
2、最外层是字典,字典里面就必须是键值对
3、最外层是数组(列表),数组里面内容必须是数组类型
数据类型对照
json是python中内置的一个模块,专门用来处理json数据的
import json
1、json文件的读操作
with open('./files/test.json', 'r', encoding='utf-8')as f:
# 直接使用read()去读,获取到的是字符串数据,包含了json文件中的所有内容(包含注释部分)
# conten = f.read()
# print(conten,type(conten))
"""
load(文件对象):获取指定json文件中的内容,返回值的类型是json文件最外层的对应的数据类型
object --> dict
array --> list
string --> str
number --> int/float
true/flase --> True/Flase
null --> None
"""
content = json.load(f)
print(content, type(content), content['成绩'][1])
2、json文件的写操作
with open ('./new.json','w',encoding='utf-8')as f:
#写数据
"""
dump(写的内容,文件对象)
"""
w_content = [
{'name':'aa','age':18},
{'name': 'aaa', 'age': 18}
]
json.dump(w_content,f)
练习:输入学生的姓名和电话,保存到本地 (要求下次启动程序,再添加学生的时候,之前添加的学生信息还在)
name = input('姓名:')
tel = input('电话:')
student = {'name':name,'tel':tel}
try:
with open('./student.json','r',encoding='utf-8')as f:
all_students = json.load(f)
except FileNotFoundError:
all_students = []
all_students.append(student)
with open('./student.json','w',encoding='utf-8')as f:
json.dump(all_students,f)
3、json模块的其它操作
loads(字符串,编码方式) ---> 将指定的字符串,转换成json数据
将字符串转换成字典、将字符串转换成列表
content = json.loads('"abc"',encoding='utf-8')
print(content,type(content))
dumps(对象)
将对象转换成json字符串
字典/列表转换成json字符串
content = json.dumps(['aaa',1,True])
print(content,type(content))
异常捕获
出现异常(错误)不想让程序奔溃,就可以进行异常捕获
try:
需要捕获异常的代码
except:
出现异常会执行的代码
try:
需要捕获异常的代码
except 错误类型:
捕获到指定的错误类型,才执行的代码
if __name__ == '__main__':
try:
with open('./aa.txt')as ff:
pass
except FileNotFoundError:
open('./aa.txt','w')