Python基础总结11(json、异常)
一、Json文件
1、什么是json数据
json是一种特定格式的数据,主要用来在互联网上做文本数据传输
json数据是文本数据,json文件是后缀是.json的文件,文件内容的格式必须满足json格式
json格式:
A.一个json对应一条数据
B.json中的数据必须是json对应的数据类型
数字类型(number)--所有数字,包括小数和整数
字符串类型(string)--只能用双引号括起来
数组(array)--相当于python中的列表
字典(dictionary)--相当于python中的字典
布尔(bool)--True 和 False
空(null)--相当于python中的None
2、python对json的支持(内置模块)
(1)load(文件对象)--将json文件的内容读出来,并将json的内容转换成python对应的数据类型,要求文件对象必须是json格式
(2)dump(内容,文件对象)--将指定的内容以json的格式写入到json文件中
(3)loads(json格式字符串)--将字符串内容是json数据的字符串转换成Python对应的数据类型
(4)dumps(内容)--将指定的内容转换成json格式的字符串,
注意:集合不能转换成json数据格式
#loads的使用:
ts1=json.loads('100')
print(type(ts1),ts1)
ts2=json.loads('"abc"')
print(type(ts2),ts2)
ts3=json.loads('[1,2,3]')
print(type(ts3),ts3)
ts4=json.loads('{"name":"Bob","age":22,"state":true}')
print(type(ts4),ts4)
#dumps的使用 (返回的都是json格式的字符串)
ts1=json.dumps(100)
print(type(ts1),ts1)
ts2=json.dumps({'name':'bob',"age":22,"state":True})
print(type(ts2),ts2)
ts3=json.dumps((1,2,3))
print(type(ts3),ts3)
#dump的使用
new_dict={'bigberg': [7600, {'1': [['iPhone', 6300], ['Bike', 800], ['shirt', 300]]}]}
with open('./file/record.json',"w") as f:
json.dump(new_dict,f)
print("加载入文件完成...")
#load的使用
with open("./file/record.json",'r') as load_f:
load_dict = json.load(load_f)
print(load_dict)
load_dict['smallberg'] = [8200,{1:[['Python',81],['shirt',300]]}]
print(load_dict)
二、异常
所有异常类型都是继承的Exception
1、报错-->出现异常(后面的代码不会执行,并且程序会直接结束)
2、抛出异常:raise 异常类型
3、捕获异常-->出现异常,不希望程序直接崩溃,而是想要自己对这个异常进行处理,就需要捕获异常
格式1:(可以捕获代码块1中所有类型的异常)
try:
代码块1:需要捕获异常的代码
except:
代码块2:出现异常后会执行的代码
说明:执行代码块1,并检查代码块1是否发生异常,若发生异常程序不崩溃并直接执行代码块2
格式2:
try:
代码块1
except 异常类型:
代码块2
说明:捕获代码块1中出现的指定类型异常
格式3:
try:
代码块1
except (异常类型1,异常类型2,异常类型n):
代码块2
说明:捕获代码块1中出现的指定类型异常
格式4:
try:
代码块1
except 异常类型1:
代码块2
except 异常类型2:
代码块3
...
说明:捕获代码块1中出现的指定类型异常
关键字:finally -->不管什么情况,finally里面的代码块都被执行
#格式1
try:
a=[1,2,3][4]
print('=====') #不会被执行
except:
print("出现异常")
#格式2
try:
print([1,2][3])
except IndexError:
print('出现IndexError异常')
#格式3
try:
print({'a':123}["b"])
print([1,2][3])
except (IndexError,KeyError):
print('出现异常···')
#格式4
try:
print({'a':123}["b"])
print([1,2][3])
except IndexError:
print('出现IndexError异常')
except KeyError:
print('出现KeyError异常')
#finally关键字
try:
f=open('./file/aaa.txt')
except FileNotFoundError:
print("文件不存在")
finally:
print("执行捕获异常后的操作")