json和异常

1.json

1.1 json是一种通用的数据格式

1.2 json是一种什么样的数据格式(通用)

1
2
3
4
5
6
7
8
一个json有且只有一个数据,唯一的这个数据必须是json支持的类型的数据
json支持的类型:
数字 - 包含所有的整数和小数,表示的时候直接写 例如:900,-23
字符串 - 只能用双引号("abc")支持转义字符
布尔 - true和false两个值
空值 - null
数组 - 相当于python中的列表:[元素1,元素2] (元素必须是json数据类型)
字典 - 相当于python中的字典,但是键只能是字符串,例如:{"name":"小明""age":18}

1.3 python数据和json数据之间的相互转换

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
python 提供一个json模块,这个模块中有两个函数专门用来支持json和python的相互转换
json --> python
数字 int/float
字符串 str,可能双引号会变成单引号
布尔值 bool,true->True,false->False
空值 null->None
数组 list
字典 dict

loads(json格式的字符串) - 将json格式的字符串转换成对应的python数据
json格式的字符串:字符串内容是一个合法的json数据(去掉字符串外面的引号,剩下的部分是一个合法的json数据)

python -> json
int/float 数字
str 字符串,单引号会变成双引号
bool True->true,False->false
list/tuple 数组
dict 字典;键会转换成字符串
None null

dumps(python数据) - 将python数据转换为对应的json格式的字符串
100 -> '100'
True -> 'true'

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
### json转换为python
import json
result = json.loads('"abc"')
print(result)

result = json.loads('["abc",123,true,null]')
print(result)

### python转换为json

result = json.dumps([100,'abc',True,None])
print(result,type(result))
result1 = json.loads(result)
print(result1)

# import json
# result = json.dumps([])
# print(result,type(result))
# result1 = json.loads(result)
# print(result1,type(result1))

2.异常

1
2
程序报错就叫程序异常
如果程序出现异常会终止程序的执行

2.1 捕获异常

1
异常捕获就是让程序中指定的代码段在出现异常后不终止程序的执行,让程序接着执行

2.2 如何捕获异常

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
结构一:捕获任意异常
try:
需要抛出异常的代码
except:
捕获到异常后会执行的代码

结构二:捕获指定类型异常
try:
需要抛出异常的代码
except 异常类型:
捕获到异常后会执行的代码

结构三:同时捕获多种异常
try:
需要抛出异常的代码
except (异常类型1,异常类型2):
捕获到异常后会执行的代码

结构四:同时捕获多种异常
try:
需要抛出异常的代码
except 异常类型1:
处理方法1
except 异常类型2:
处理方法2
.....

结构五:可以在前面几种结构后面加finally 后接代码段
finally后面的代码段都会执行(不管是否出现异常或者异常是否被捕获)

2.3抛出异常 - 主动抛出异常

1
raise 异常类型