json文件2018-10-15

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 234

python转json

3.dumps与dump

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

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

[2, 4, 4]

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)