python自学Python自学与资料分享生活不易 我用python

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')
上一篇下一篇

猜你喜欢

热点阅读