day12-json和异常捕获

02-json数据

1.什么是json数据:

json是一种数据格式,满足json格式的数据就是json数据。
文件后缀是.json,并且文件中内容满足json格式

2.json格式:

一个json中只有一个数据,并且这个数据时json支持的数据了类型的数据

json支持的数据类型
数字类型 - 包含所有数字,包括整数小数
字符串 - 使用双引号括起来的字符集,列如:“123” "hghji"
布尔 - true 和 false
数组 - 相当于列表,使用中括号括起来,括号里是json支持的任意类型数据
列如:[12,"iuyg",true]
字典 - 就是字典,使用{}括起来,使用键值对。键一般是字符串,
值是json支持的任意类型的数据
特殊值 - null (相当于None),表示空

3.Python中有一个内置json模块,用来支持对json模块的处理:json

a.将json数据转换成Python数据
b.将Python数据转换成json数据

import json

1.将json数据转换成Python数据

loads(字符串)-将json格式的数据转换成Python对应的数据
注意:字符串的内容必须是json格式的数据

json Python
数字 整型、浮点型
字符串 字符串(双引号会变成单引号)
布尔 布尔(首字母变大写)
数组 列表
字典 字典

py1 = json.loads('"absv"')
py2 = json.loads('[1,2,58,"cxei",null,true,{"abc":32}]')
#                [1, 2, 58, 'cxei', None, True, {'abc': 32}]
print(py1,py2)

import json
with open('data.json','r',encoding='utf-8')as f:
    py3 = json.loads(f.read())
    x = py3['data'][2]['age']
    print(x)

2.将Python数据转换成json数据

dumps(数据)-转换成内容符合json格式的字符串
注意:最终结果都是字符串

Python json
整型、浮点型 数字
字符串 字符串(单引号会变双引号)
布尔 布尔(大写变小写)
列表、元组 数组
字典 字典
None null"

js1 = json.dumps([1, 2,(1,5,8,45), 58, 'cxei', None, True, {'abc': 32}])
print(js1)  # [1, 2, [1, 5, 8, 45], 58, "cxei", null, true, {"abc": 32}]
js2 = json.dumps((1,5,7,9,5))#元组括号不能省略
print(js2)

添加多个学生信息:姓名年龄、电话,将数据保存到json文件中
并且上次添加的信息不会删除
list1 = []

3.json文件操作相关方法

load(文件对象)- 将文件对象中的数据读出来,并转换成Python对应的数据
(文件对象中的内容必须是json格式的数据)
dump(数据,文件对象)-将Python数据转成

with open('data.json','r',encoding='utf-8')as f:
    py4 = json.load(f)
    print(py4)
with open('data.json', 'w', encoding='utf-8')as f:
    json.dump(py4,f)

03-异常捕获

1.什么是异常

执行过程中出错,也叫出现异常

2.异常捕获

让本来会出现异常的位置不出现异常,而是自己去处理异常出现的情况

3.怎么捕获异常

1.捕获所有异常
语法:
try :
代码段1
except:
代码段2

执行过程:执行代码段1,如果代码段1中出现异常,不会崩溃,而是马上执行代码段2.
如果1没有异常,不会执行2

try:
    print([1,2,3,4][4])
except:
    print('出现异常')

2.捕获指定异常
语法:
try:
代码段1
except 错误类型名:
代码段2

执行过程:执行1,当1出现指定类型的异常后执行2

print(int('asb'))
try:
    print(int('asb'))
except ValueError:
    print(int('123'))

3.同时捕获多个异常,对不同异常做出相同的反应
try:
代码段1
except(错误类型1,错误类型2,错误类型3....):
代码段2

执行过程:执行1,如果出现指定异常,执行代码段2

try:
    print(int('nb'))
    print([1,2,5,4][6])

except(SyntaxError,ValueError,KeyError,IndexError,StopIteration,FileExistsError):
    print(123)

4.同时捕获多钟类型,对不同类型做出不同反应

try:
代码段1
except 错误类型1
2
except 错误类型3
3
except 错误类型
4
.
.
.
except 错误类型n
n

5.try-except-finally

try:
1
except:
2
finally:
3

不管代码段1是否出现异常也不管异常是否捕获到,finally后面的代码都能执行(一般用于数据保存)

什么时候使用异常捕获:
1.明明知道某段代码可能会出现异常,但无法避免,就使用异常捕获

封装函数,获取文件中内容
从封装角度:调用者做的事情越少越好

def get_file(file):
    while 1:
        try:
            with open(file,encoding='utf-8')as f:
                content = f.read()
                return content
            break
        except FileExistsError:
            print('地址错误,请重新输入')
x = get_file('a.txt')
print(x)

抛出异常:主动让程序出现异常

语法:
raise 错误类型 - 程序执行到raise时直接抛出异常

注意:错误类型必须是一个类,并且是Exception的子类

输入年龄,如果不在0~100,程序就崩溃

x = int(input('输入0~100:'))
if 0 > x or x > 100:
    raise ValueError
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,651评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,468评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,931评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,218评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,234评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,198评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,084评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,926评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,341评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,563评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,731评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,430评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,036评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,676评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,829评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,743评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,629评论 2 354

推荐阅读更多精彩内容

  • 1 json数据 1.1 什么是json数据 json是一种数据格式,满足json格式的数据就是json数据;文件...
    barriers阅读 230评论 0 0
  • 一.json 什么是json数据json是一种数据格式,满足json格式的数据就是json数据。文件后缀是.jso...
    2ez4ddf阅读 214评论 0 0
  • 12.1 json数据 1.什么是json数据json是一种数据格式,满足json格式的数据就是json数据。文件...
    2333_11f6阅读 303评论 0 0
  • 什么是爱情? 不管是遥远的以前还是现在,总有人在问,什么是爱情。 也不管是天涯的远方还是这里,总有人在答,什么是爱...
    徐清影阅读 637评论 0 6
  • 上一章 目录 我默默地听着李婶的讲述,用想象补充着那有些干瘪的情节,尽量使之丰满起来。 接下去呢? 李婶那一圈白...
    江边独钓阅读 342评论 11 30