json数据格式与异常捕获

json数据格式与异常捕获

json数据格式

  1. 什么是json

    json是一种通用的数据格式

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

    一个json有且只有一条数据(必须有一条数据)

    惟一的这个数据必须是json支持的类型的数据

    json支持的类型:

    ​ 数字 — 包含左右的整数和小数,表示的时候直接写 例:999,-123,0.97,9e3

    ​ 字符串 — 用双引号引起来的数据 例:“zzx” , “best”

    ​ 布尔 — true / false (小写)

    ​ 空值 — null 表示的时候直接写

    ​ 数组 — 相当于python中的列表:[元素1,元素2…]

    ​ 字典 — 相当于python中的字典:但是键只能是字符串 例:{“name”:“zzx”, “age”:18}

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

    python提供了一个json模块,这个模块中有两个函数专门用来支持json和python的相互转换

    json 转 python

    json -----> python

    数字 int、float
    字符串 str双引号可能会变成单引号)
    布尔值 bool:true->True false->False
    空值 null->None
    数组 list
    字典 dict

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

import json

result = json.loads('"zzx"')
print(result)  #zzx

result1 = json.loads('[999, "zzx", true, null]')
print(result1,type(result1))   #[999, 'zzx', True, None]  <class 'list'>

python 转 json

python -----> json

int、float 数字
str 字符串;单引号会变成双引号
bool bool:True->true False->false
None null
list/tuple 数组
dict 字典;键会转换成字符串
dumps(python数据) — 将python数据转换成对应的json
100 —> “100”

result2 = json.dumps(['zzx', 999, True, None])
print(result2,type(result2))   #["zzx", 999, true, null] <class 'str'>

异常捕获

  1. 异常
    程序报错就叫程序异常

    如果程序出现异常会终止程序的执行

  2. 捕获异常

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

    什么时候需要捕获异常:明知道某个位置可能会出现异常

    但是不是因为代码不符合语法造成的而是使用者使用不当造成的

    然而又不希望这个地方出现异常的时候终止程序的执行

  3. 怎么捕获

    结构1:(可以捕获一切异常)

    try:
    需要捕获异常的代码
    except:
    捕获异常后执行的代码
    其他语句

    结构2:(捕获指定类型异常)

    try:
    需要捕获异常的代码
    except 异常类型: (捕获指定异常,若异常与捕获类型不同则程序报错)
    捕获异常后执行的代码
    其他语句

    结构3:(捕获指定多种类型异常)

    try:
    需要捕获异常的代码
    except (异常类型1, 异常类型2,异常类型3…): (捕获指定异常,若异常与捕获类型不同则程序报错)
    捕获异常后执行的代码
    其他语句

    结构4:(捕获指定多种类型异常,捕获到不同类型异常处理方式不同)

    try:
    需要捕获异常的代码
    except 异常类型1: (捕获指定异常,若异常与捕获类型不同则程序报错)
    捕获异常后执行的代码(处理方法1)
    except 异常类型2: (捕获指定异常,若异常与捕获类型不同则程序报错)
    捕获异常后执行的代码(处理方法2)

    其他语句

  4. finally

    finally后面的代码不论前面是否出现异常,也不管异常是否被捕获都会执行

  5. 抛出异常 — 主动让程序崩溃

    raise 异常类型

    # 结构一:
    try:
        age = eval(input('请输入年龄:'))
    except:
        print('输入错误!年龄必须是整数!')
    print('----------------------------')
    
    # 结构二:
    try:
        print(999 + 'zzx')
    except TypeError:
        print('类型错误!')
    
    # 抛出异常
    class AgeError(Exception):
        def __str__(self):
            return '年龄值错误'
    age = eval(input('输入年龄:'))
    if(age > 200 or age < 0):
        raise AgeError
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值