从入门到入狱--------json和异常

入门 N day

import json 模块导入

json是一种数据格式,几乎所有的高级语音都支持这种数据格式的处理
用于不同语言之间的数据交流

json格式文件
要求:
一个json有且只有一个数据
唯一的数据必须是json支持的数据类型的数据

json支持的数据类型:
数字类型(Number)—所有数字对应的类型,表示的时候直接写例如:-10,12.1,3e4…
字符串类型(String)—用双引号引起来的字符集(只能是双引号),例如:“12”,“a12”,"\n123"
布尔值(Bool) —只有true和false
数组(Array)----相当于python的列表,并且里面的元素都是json支持的类型
字典(Dictionary)----相当于python中的字典,但是key只能是字符串
空值 --------null,相当于python的None,

json数据和python数据的相互转换
python中提供了json模块,专门用来提供处理json数据相关的函数 json.loads()
json数据转python数据

json ----> python
数字 ------int/float
字符串------ 字符串(可能会将双引号变为单引号)
布尔 -------布尔(首字母大写)
数组 ------- 列表(元素也会进行相应的转换)
字典 -------- 字典(元素也会进行相应的转换)
null ------- None

函数:
json.loads(json格式的字符串) -------->json格式的字符串转换成对应的python数据
json格式的字符串:字符串内容满足json格式
json.loads(‘abc’) # 会报错
json.loads(’“abc”’) # 这样不会报错
result=json.loads(’{“a”:[“abc”,12,true,null]}’) # json中的数据
print(result) # {‘a’: [‘abc’, 12, True, None]} # python中的数据

def data():
with open(‘data.json’,encoding=‘utf-8’) as f:
result=f.read()
titles=[title[‘title’] for title in json.loads(result)[‘newslist’]]
for i in titles:
print(i)

data()

python数据转换成json数据
python ------> json
int ------ 数字
float ------- 数字
字符串 -------字符串(引号变成双引号)
布尔------布尔(都变为小写True->true;False->false)
列表,元组 ------数组(元素也会自动转换)
字典 ------- 字典(key全部变为字符串)
None ------ null

函数:
json.dumps(python数据)-----将指定的python数据转换成json格式的字符串

result=json.dumps(({1:2.1},['a\nbc',True,None]))
print(result)  #[{"1": 2.1}, ["a\nbc", true, null]]

异常就是错误(程序报错)
执行程序的过程中如果出现异常,程序会直接结束(实际是单线程结束)

异常捕获:
在程序出现异常的时候不崩溃继续执行。
不是任何异常都需要捕获的,只有在知道某段代码会出现异常,
但是又不能或者不方便修改代码来避免异常,这个时候就可以对异常进行捕获

语法

方法一:
try:
需要捕获异常的代码段
except:
捕获到异常后会执行的代码段
finally:
不管前面出现什么情况也会执行的代码
多用来保存数据

try:
age = int(input(‘请输入验证码:’)) # 请输入年龄:输入dawwa不是int类型
print(’--------第二行-----------’) # 如果第一行出现异常,则不会执行print

except KeyError:
print(‘输入有误,请重新运行’) # 输入有误,请重新运行
finally:
print(’-----最后的倔强-----’)

先执行try里面的代码,如果出现异常则会执行except里面的代码
如果没有异常,则不会执行excpet的代码,执行后面的代码

方法二:
try:
需要捕获异常的代码段
except 异常类型:
捕获到指定异常后会执行的代码段
finally:
不管前面出现什么情况也会执行的代码
多用来保存数据

try:
open(’/’) # PermissionError
except PermissionError:
print(‘输入有误,请重新运行’) # 捕获指定异常,异常后面的语句不会执行
finally:
print(’-----最后的倔强-----’)

方法三:
try:
需要捕获异常的代码段
except (异常类型1,异常类型2,异常类型3):
捕获到指定异常后会执行的代码段
finally:
不管前面出现什么情况也会执行的代码
多用来保存数据

方法四:
try:
需要捕获异常的代码段
except 异常类型1:
捕获到指定异常后会执行的代码段1
except 异常类型2:
捕获到指定异常后会执行的代码段2
except 异常类型3:
捕获到指定异常后会执行的代码段3
finally:
不管前面出现什么情况也会执行的代码
多用来保存数据

抛出异常: raise 异常类型
异常类型可以是系统异常类型,也可以是自定义的异常类型

猜你喜欢

转载自blog.csdn.net/weixin_44628421/article/details/109154344