美文网首页
json文件2018-10-15

json文件2018-10-15

作者: 癫狂麦芽糖 | 来源:发表于2018-10-15 20:59 被阅读0次

    1.文件操作打开关闭缩写

    with open() 打开文件缩写
    打开文件时,以'r'/'rb'读的形式打开,如果文件不存在会报错;以写'w'/'a'的形式打开,文件不存在的情况下会创建对应文件
    with open(文件路径,打开方式,encoding=编码方式)as 文件对象:
    文件操作代码

    with open('./files/testing.txt') as f:
        f.write('how are u?\nfine,thank you.\n')
    

    说明:这种操作,打开并执行文件后会自动关闭该文件
    编码方式只有在文本文件时才用

    2.二进制文件的读写

    常见二进制文件:视频文件/音频文件/图片/压缩包等
    注意:二进制文件读写不能设置文本编码方式(不能给encoding赋值)
    bytes-->字节,是python专门用来表示二进制的数据类型
    ===============================================================

    json文件

    json是一种特定格式的数据,主要用来在互联网上做文本数据传输。
    json数据本身是文本数据,json文件就是后缀是.json的文件,文件内容需满足json格式要求

    1.json格式

    • 一个json对应一条数据
    • json中的数据必须是json对应的数据类型
      数字类型(number)-->所有的数字,包含整数和小数。
      字符串类型(string)-->只能用双引号""括起来的数据。
      数组(array)-->相当于python中的列表,[1,3,4,"3d"]
      字典(dictionary)-->相当于python中的字典
      布尔-->true和false(首字母是小写不能大写)
      null-->相当于None,用来表示空
      同理,除了int/float/string/list/dict/bool/None,其他数据无法转为json文件

    2.python对json的支持

    python中专门提供了一个json模块,用来处理json数据
    import json
    json.load(json文件对象)-->将json文件对象内容读出来,并且将内容转换成python对应的数据类型。要求文件内容必须是json格式数据
    json.dump(内容,json文件路径)-->将指定内容以json格式写入到json文件中
    loads(json格式字符串)-->将字符串内容是json数据的字符串转换成python对应的数据类型
    dumps(内容)-->将指定内容转化成json格式的字符串

    import json
    content= json.loads('"abc"')
    content2=json.loads('234')
    print(content,type(content),content2,type(content2))
    

    abc <class 'str'> 234 <class 'int'>

    python转json

    3.dumps与dump

    dumps(内容)-->内容是python数据,返回值是一个字符串,且字符串内容是满足json格式的
    注意:集合不能转化为json数据

    import json
    str1=json.dumps([2,4,4])
    print(str1,type(str1))
    

    [2, 4, 4] <class 'str'>

    dump(内容,文件对象)-->将内容以json格式写入文件中

    #学生管理系统:添加学生,要求之前添加过的学生,下次执行程序的时候还在;显示学生信息
    
    import json
    with open('./files/student.json')as f:
        all_student=json.load(f)
    
    
    def add_students():
        while True:
            global all_student
    
            name=input('请输入名字:')
            age=input('请输入年龄:')
            tel=input('请输入电话号码:')
            student={'name':name,'age':age,'tel':tel}
            all_student.append(student)
            with open('./files/student.json','w')as f:
                json.dump(all_student,f)
                print('添加成功!')
                print('1.继续添加')
                print('2.返回上一层')
                value=input('请选择1-2')
                if value==1:
                    continue
                else:
                    return
    def show_students():
        for student in all_student:
            print(student)
    while True:
        print('1.添加学生信息')
        print('2.查看学生信息')
        print('3.退出')
        value2=input('请选择1-3:')
        if value2=='1':
            add_students()
        if value2=='2':
            show_students()
        else:
            print('退出成功!')
            break
    

    数据本地化的过程:
    使用数据的时候从本地文件中去取数据,修改完数据后将新数据更新到本地文件中。

    异常捕获

    报错就是出现异常
    出现异常后,不希望程序直接崩溃,而是想要自己对异常进行处理,就需要捕获异常。

    • 格式1:(可以捕获代码段1中出现的所有异常。finally语句可不出现,出现后try后代码是否出现异常及有无捕获代码,finally后代码段都会执行
      try:
      需要捕获异常的代码段1
      except:
      出现异常后会执行的代码段2
      finally:
      总会执行的代码段3

    • 格式2:(捕获指定异常类型)
      try:
      需要捕获异常的代码段1
      except 异常类型:
      出现异常后会执行的代码段2
      finally:
      总会执行的代码段3

    • 格式3:(捕获括号中指定的所有异常类型)
      try:
      需要捕获异常的代码段1
      except (异常类型1,异常类型2):
      出现异常后会执行的代码段2
      finally:
      总会执行的代码段3

    • 格式4:
      try:
      需要捕获异常的代码段1
      except 异常类型1:
      出现异常后会执行的代码段2
      except 异常类型2:
      出现异常后会执行的代码段3
      ……
      finally:
      总会执行的代码段3

    抛出异常

    raise 异常类型

    相关文章

      网友评论

          本文标题:json文件2018-10-15

          本文链接:https://www.haomeiwen.com/subject/qroxzftx.html