美文网首页
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