美文网首页
Day12 json 和异常捕获

Day12 json 和异常捕获

作者: ququququ | 来源:发表于2019-01-09 15:56 被阅读0次

一、JSON

1、什么是json数据

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。

2、json数据的语法

一个json数据只有且只有一个数据,这个数据的数据类型必须是json支持的数据类型

3、json支持的数据类型

JSON 值可以是:数字(整数或浮点数)、字符串(在双引号中)、逻辑值(true 或 false)、数组(在方括号中)、字典(在花括号中)、null

a、数字类型:

包含所有的数字,包括整数,小数:例如100,12.4,-2.3

正数前面不能加‘+’。json支持科学计数法

b、字符串:

使用双引号括起来的数据;例如:"abc", "abc123"

c、布尔:

只有 true和false两个值。

d、数组:

相当于Python的列表,用[]括起来,多个元素用逗号隔开;

例如:[122,"abc"]

e、字典:

相当于Python的字典,用{}括起来,多个键值对用逗号隔开,

例如:{"a" : 1, "b" : 2, "3" : 4}

f.空值

null,相当于Python中的none

{
    "name":"小强",
    "age":16,
    "msg":["a","b"],
    "regex": "^http://.*"
};

4、json数据转换python

使用 JSON 函数需要导入 json 库:import json

函数 描述
json.dumps 将 Python 对象编码成 JSON 字符串
json.loads 将已编码的 JSON 字符串解码为 Python 对象

python中提供了json模块专门处理json数据

将json数据转换成python数据(通过爬虫获取到别人提供的json数据,在python中出处理它)

a、转换方式

json python
数字 int/float
字符串 字符串
布尔 bool,会将json中的true/false转换成True/False
数组 列表
字典 字典
空值(null) None

b、loads方法

loads(字符串, encoding = 'utf-8') - 将字符串中的json数据转换成对应的python数据

注意:字符串中的内容必须是JSON格式数据

import json
content = json.loads('"abc"', encoding = 'utf-8')
print(content, type(content)) # abc <class 'str'>

实例
以下实例将数组编码为 JSON 格式数据:

以下实例展示了Python 如何解码 JSON 对象:

import json
jsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
text = json.loads(jsonData)
print(text)   # {u'a': 1, u'c': 3, u'b': 2, u'e': 5, u'd': 4}
5、python转换json数据

将python数据转换成json数据(python写后台接口将数据提供给客户端)

转换方式 python -> json

python json (json.dumps(对象))
100(整数) 100(字符串)
'abc' "abc"(单引号变成双引号)
True/False true/false
列表 数组
元祖 数组
字典 字典
集合 不能转化成json,报错
None null

注意:转换后都是字符串类型

dumps(对象) # 这儿的对象指的就是python数据

将指定的对象转换成json数据,以字符串的形式返回这儿的对象指的就是python数据

import json
data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]
json = json.dumps(data)  #  返回的json是字符串类型,内容格式是json数据
print(json)   # [{"a": 1, "b": 2, "c": 3, "d": 4, "e": 5}]   

注意:返回值是字符串,并且字符串的内容是json数据

6、json文件处理

json文件不一定是后缀是.json都是json文件,json文件是文件内容是json数据的文件。

load(文件对象) - 将指定文件中的内容读出来,并且转换成python对应数据。文件对象对应的文件必须是json文件。

dump(对象, 文件对象) - 将指定对象转换成是json格式的字符串,然后写入指定的文件中。

注意:这儿的对象对应的类型必须是能够转换成json的数据类型。

二、json来源

python中的数据请求(HTTP请求),是通过第三方库requsets来提供的。

requests的第三方库的使用

get/post 方法都是发送请求获取接口提供的数据

获取数据的方法都是get请求

get(url, params = None)

url - 需要获取的数据的接口地址

params - 字典,参数列表(给服务器发送请求的时候需要传给服务器的数据)

完整的接口:协议://主机地址/路径?参数名1=值1&参数名2=值2

发送请求,并且获取返回的数据,

服务器返回的数据叫响应

从响应中获取数据

1、获取json数据

content_json = response.json() # 会自动将json数据转换炒年糕python对应的数据

2、获取字符串数据

content_text = response.text
print(type(content_text))
print(content_text)

3、获取二进制数据

content_bytes = response.content # 获取图片,音频等
print(content_bytes)

post(url, params = None, json = None)

三、异常捕获

1、异常捕获报错的地方不报错

知道某段代码会出现异常,而且没有办法避免,同时又不希望出现异常的时候程序不崩溃;这个时候就可以通过异常捕获来让程序不崩溃并且自行处理异常。

2、异常捕获语法

a、try - except(可以捕获所有类型的异常)

try:
    代码段1(可能出现异常的代码段)
except:
    代码段2(出现异常后处理异常的代码段)

执行过程:执行代码段1,如果代码段1出现异常,程序不崩溃,直接执行代码段2

如果代码段1中没有出现异常,就不执行代码段2而是直接执行后面的其他语句。

b、try - except 错误类型 (捕获指定类型的异常)

try:
    代码段1
except 错误类型:
    代码段2(只有代码段1中出现了指定类型的异常才捕获)
        

执行过程:代码段1中出现指定类型错误就执行代码段2

c、try - except(错误类型1,错误类型2...) (同时捕获多种异常)

try:
    print('abc'[4])
except (IndexError, IndentationError):
    print("Error")

d、try - except 错误类型1 - except 错误类型2...(同时捕获多种异常,可以对不同的异常做不同的处理)

try:
    代码段1
except 错误类型1:
    代码段2
except 错误类型2:
    代码段3
    
    
3、抛出异常

主动让程序崩溃

raise 错误类型

if age > 18:
    raise ValueError

说明:错误类型 - 可以是系统类型的错误,也可以是自定义错误类型(要求这个值必须是一个类,而且是Exception的子类)

相关文章

  • Day12 json 和异常捕获

    一、JSON 1、什么是json数据 JSON(JavaScript Object Notation) 是一种轻量...

  • day12 总结 - json和异常捕获

    01.recode 1.生成式(生成式的结果就是一个生成器) 表达式 for 变量 in 序列def func1(...

  • json和异常捕获

    1.json数据 1.什么是json数据 json数据就是一种数据格式,瞒住json格式的数据就是json数据。文...

  • json和异常捕获

    一、json数据 1.什么是json数据json是一种数据格式,满足json格式的数据就是json数据。文件后缀是...

  • thinkphp5.0 全局异常捕获处理

    一、异常捕获和处理 模拟 model层出现了异常,在controller层捕获异常,并给前端返回json格式异常信...

  • json文件和异常捕获

    1、文件操作 2、json文件(特别重要) 3、文件的使用 4、异常捕获

  • json、异常捕获

    一、json 1.什么是json数据 json是一种具有特定语法的数据格式 2.json数据的语法 一个json数...

  • day12 课堂总结

    01-recode 02-json数据 03-异常捕获 04-抛出异常

  • day12 josn和异常捕获

    josn数据 1.什么是json数据 json是一种数据格式,满足json格式的数据就是json数据。文件后缀是....

  • json数据,异常捕获、抛出异常

    一.json文件 1.json数据:一种数据格式,满足这种格式的数据就是json数据 2.json格式 a.一个j...

网友评论

      本文标题:Day12 json 和异常捕获

      本文链接:https://www.haomeiwen.com/subject/dndgrqtx.html