美文网首页接口文档及接口测试学习
『居善地』接口测试 — 5.Requests库的使用

『居善地』接口测试 — 5.Requests库的使用

作者: 繁华似锦Fighting | 来源:发表于2021-01-02 20:08 被阅读0次

    (1)使用步骤

    简单介绍一下Requests库步骤。

    #1.导入requests库
    import requests
    
    #2.准备接口三要素
    # 2.1 明确请求地址
    url = "http://127.0.0.1:8000/api/departments/"
    # 2.2 明确请求参数
    # 2.3 发送请求+请求方式
    response = requests.get(url=url)
    
    # 查看返回值
    print(response)
    
    
    # 举例:
    # 1.导入requests库
    import requests  
    
    # 2.使用requests库
    # 发送请求
    response = requests.get('https://api.github.com/events')  
    # 查看结果
    print(response.status_code)  
    print(response.headers['content-type'])  
    print(response.encoding)  
    print(response.json())
    

    (2)示例练习:

    """
    1.学习目标
        必须掌握requests库的基本使用
    2.操作步骤
        # 1.导入requests库
        # 2.明确请求地址
        # 3.明确请求参数
        # 4.发送请求
    3.需求
        使用requests库来请求学生管理系统一查询所有学院接口
    4.总结
        返回值的获取
        response.text  # 获取返回值文本(将返回值以文本格式显示)
        response.json()  # 获取json格式的返回值,对于返回值类型为json格式比较友好
        response.status_code  # 获取状态码---HTTP协议响应状态码
        response.headers  # 获取响应头
        response.content # 获取响应源码(多用于爬虫)
    5.json和python转化
        json.dumps(需要转换的python对象,indent=2,ensure_ascii=False)
            indent  表示格式化输出时缩进
            ensure_ascii=False 表示对非ascii字符不做转化
    """
    # 1.导入requests库
    import requests
    import json
    
    # 2.明确请求地址
    url = "http://127.0.0.1:8000/api/departments/"
    
    # 3.明确请求参数
    # 没有参数不用写
    
    # 4.发送请求
    response = requests.get(url=url)
    # print(response)
    # 结果:<Response [200]>
    
    
    # 5.获取返回值内容
    res = response.json()  # 会获得一个字典格式的对象
    print(type(res))
    
    # 6.python字典转换为json字符串
    # 使用json库实现
    
    # 将python对象转换为json字符串
    result = json.dumps(res, indent=2, ensure_ascii=False)
    print(type(result))  # 字符串类型
    print(result)
    
    # json.loads()  # 将json字符串转换为python对象
    

    (3)说明:Json数据和Python对象互相转化。

    Python3 中可以使用 Json模块来对 JSON 数据进行编解码,它主要提供了四个方法: dumpsdumploadsload

    dump方法和dumps方法说明:

    dump方法和dumps方法对Python对象进行序列化,将一个Python对象进行JSON格式的编码。

    json.dumps(obj, *, 
               skipkeys=False, 
               ensure_ascii=True, 
               check_circular=True,
               allow_nan=True, 
               cls=None, 
               indent=None, 
               separators=None,
               default=None, 
               sort_keys=False, 
               **kw)
    

    说明dumps方法中常用的几个参数:

    • obj:表示是要序列化的对象。

    • ensure_ascii:默认值为True,用来控制生成的JSON字符串的编码,能将所有传入的非ASCII字符转义输出。如果ensure_asciiFalse,保持原有编码,则这些字符将按原样输出。

    • indent:可以用来控制JSON字符串的换行和缩进效果,默认值为None

      如果indent是非负整数或字符串,那么JSON数组元素和对象成员将使用该缩进级别进行输入;

      indent为0、负数或“”仅插入换行符;

      indent使用正整数缩进多个空格;

      如果indent是一个字符串(例如“\t”),则该字符串用于缩进每个级别。

    • sort_keys:默认值为False,如果sort_keysTrue,则字典的输出将按键值排序。

    其他参数看源码即可,源码中对dumps方法中的每个参数都有详细的说明。

    load方法和loads方法说明:

    load方法和loads方法对Python对象进行反序列化方法,将JSON格式数据解码为Python对象。

    json.loads(s, *, 
               encoding=None, 
               cls=None, 
               object_hook=None, 
               parse_float=None,
               parse_int=None, 
               parse_constant=None, 
               object_pairs_hook=None, 
               **kw):
    

    说明loads方法中常用的几个参数:

    • s:将s(包含JSON文档的strbytesbytearray实例)反序列化为Python对象。
    • encoding:指定一个编码的格式。

    其他参数看源码即可,源码中对loads方法中的每个参数都有详细的说明。

    注意:如果进行反序列化(解码)的数据不是一个有效的JSON文档,将会引发 JSONDecodeError异常。

    Python对象与 Json数据类型转换:

    Python对象转Json数据:

    Python JSON
    dict object
    list, tuple array
    str string
    int, float, int-&float-derived emuns number
    True true
    False false
    None null

    Json数据转Python对象

    JSON Python
    object dict
    array list
    string str
    number (int) int
    number (real) float
    true True
    false False
    null None

    相关文章

      网友评论

        本文标题:『居善地』接口测试 — 5.Requests库的使用

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