美文网首页
Day13——json_requests_exception

Day13——json_requests_exception

作者: Devil灬 | 来源:发表于2019-01-09 17:44 被阅读0次

一、json

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

I. 数据类型转化对照表

  • Python 转 Json
Python Json
dict object
list, tuple array
str string
int, float number
True true
False false
None null
  • Json 转 Python
Json Python
array list
其余同上

II. 函数

1 json.dumps(对象) 将 Python对象编码成 Json字符串
result = json.dumps([10, 'abc', True, None])
print(type(result), result)

结果:
<class 'str'> [10, "abc", true, null]        # '[10, "abc", true, null]'
2 json.loads(字符串[, encoding]) 将 Json字符串解码为 Python对象
message = '{"name": "张三", "age": 18, "sex": null, "marry": true}'
content = json.loads(message, encoding='utf-8')
print(type(content), content)

结果:
<class 'dict'> {'name': '张三', 'age': 18, 'sex': None, 'marry': True}
3 json.dump(对象,文件对象) 将 Python对象编码成 Json字符串,写入指定文件对象中
all_student = [
        {'name': '小明', 'age': 12, 'tel': '1237736'},
        {'name': 'yuting', 'age': 18, 'tel': '23333'}
    ]
with open('student.json', 'w', encoding='utf-8') as f:
    json.dump(all_student, f)    # 相当于 f.write(json.dumps(all_student))
4 json.load(文件对象, encoding) 将 Json文件中的 Json字符串读出,并解码为 Python对象
with open('data.json', encoding='utf-8') as f:
    result = json.load(f)    # 相当于 result = json.loads(f.read())
    print(type(result), result['msg'])

结果:
<class 'dict'> 成功!

二、requests

I. 安装

File -> Settings ->Project -> Project Interpreter -> + (添加) -> 搜索requests -> Install Package

II. 方法

get(url, params=None)
url 字符串,需要获取的数据的接口地址
params 字典,参数列表(给服务器发送请求的时候需要传给服务器的数据)

注(完整的接口):
https://www.apiopen.top/meituApi?page=1
协议 ://主机地址 /路径 ?参数名1=值1 &参数名2=值2

  • 发送请求,并且获取返回的数据(服务返回的数据叫响应)
response = requests.get('https://www.apiopen.top/meituApi?page=1')

response 类型:
 <class 'requests.models.Response'>
  • 从响应中获取数据
  1. 获取json数据
gx_json = response.json()    # 会自动将json数据转换成python对应的数据

gx_json 类型:
<class 'dict'>
  1. 获取字符串数据
gx_text = response.text

gx_text 类型:
<class 'str'>
  1. 获取二进制数据(原始数据)
gx_bytes = response.content

gx_bytes 类型:
<class 'bytes'>

三、exception

1. 异常捕获

I. try - except

(可以捕获所有类型的异常 - 只要代码段1中出现了异常就捕获)

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

其他语句

II. try - except 错误类型

(捕获指定类型的异常 - 只有代码段1中出现了指定类型的异常才捕获)

语法格式:
try:
 代码段1(可能会出现异常的代码段)
except 错误类型:
 代码段2(出现异常后处理异常的代码段)

其他语句

III. try - except (错误类型1,错误类型2...)

(同时捕获多种指定异常)

语法格式:
try:
 代码段1(可能会出现异常的代码段)
except (错误类型1,错误类型2...):
 代码段2(出现异常后处理异常的代码段)

其他语句

IV. try - except 错误类型1 - except 错误类型2...

(同时捕获多种异常,可以对不同的异常做不同的处理)

语法格式:
try:
 代码段1(可能会出现异常的代码段)
except 错误类型1:
 代码段2
except 错误类型2:
 代码段3

其他语句

2.抛出异常

主动让程序奔溃

raise 错误类型

(程序执行到这句代码就出现指定类型的异常!)
说明:错误类型 - 可以是系统提供的错误类型, 也可以是自定义错误类型(要求这个值必须是一个类,而且是Exception的子类)

相关文章

网友评论

      本文标题:Day13——json_requests_exception

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