json文件操作及异常捕获

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')
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、快捷键 ctr+b 执行ctr+/ 单行注释ctr+c ...
    o_8319阅读 11,139评论 2 16
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,183评论 19 139
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,192评论 2 89
  • 今天是每天一篇文章的第28篇。 学习这词来自论语《学而》,原话是“学而时习之,不亦悦乎!”。我记得小时...
    很温暖阅读 1,724评论 1 2
  • 行动力 杨绛先生在给年轻人的九个忠告中,有一个是:“年轻人最大的问题在于想的太多而做的太少。“一个人平均每天能有几...
    言不同阅读 2,286评论 0 0

友情链接更多精彩内容