zoukankan      html  css  js  c++  java
  • requests--重定向,序列化

    重定向

    默认情况下,除了 HEAD, Requests 会自动处理所有重定向。可以使用响应对象的 history 方法来追踪重定向。

    Response.history 是一个 Response 对象的列表,为了完成请求而创建了这些对象。这个对象列表按照从最老到最近的请求进行排序。例如,12306 将所有的 HTTP 请求重定向到 HTTPS

    import requests
    requests.packages.urllib3.disable_warnings()
    
    r = requests.get('http://www.12306.cn/',verify=False)
    print(r.url)
    print(r.status_code)
    print(r.history)

    结果:

    https://www.12306.cn/index/
    200
    [<Response [302]>, <Response [302]>]

    如果你使用的是GET、OPTIONS、POST、PUT、PATCH 或者 DELETE,那么你可以通过 allow_redirects 参数禁用重定向处理:

    import requests
    requests.packages.urllib3.disable_warnings()
    
    r = requests.get('http://www.12306.cn/',verify=False, allow_redirects=False)
    print(r.url)
    print(r.status_code)
    print(r.history)

    结果:

    http://www.12306.cn/
    302
    []

    如果你使用了 HEAD,你也可以启用重定向:

    >>> r = requests.head('http://github.com', allow_redirects=True)
    >>> r.url
    'https://github.com/'

    >>> r.history [<Response [301]>]

    序列化

    json.dumps()

     json.dumps()用于将dict类型的数据转成str,因为如果直接将dict类型的数据写入json文件中会发生报错,因此在将数据写入时需要用到该函数。

    import json
    
    name_emb = {'a': '1111', 'b': '2222', 'c': '3333', 'd': '4444'}
    
    jsObj = json.dumps(name_emb)
    
    print(name_emb)
    print(jsObj)
    
    print(type(name_emb))

    结果:

    {'a': '1111', 'b': '2222', 'c': '3333', 'd': '4444'}
    {"a": "1111", "b": "2222", "c": "3333", "d": "4444"}
    <class 'dict'>
    json.loads()

     json.loads()用于将str类型的数据转成dict。

    import json
    
    name_emb = {'a': '1111', 'b': '2222', 'c': '3333', 'd': '4444'}
    
    jsDumps = json.dumps(name_emb)
    
    jsLoads = json.loads(jsDumps)
    
    print(name_emb)
    print(jsDumps)
    print(jsLoads)
    
    print(type(name_emb))
    print(type(jsDumps))
    print(type(jsLoads))

    结果:

    {'a': '1111', 'b': '2222', 'c': '3333', 'd': '4444'}
    {"a": "1111", "b": "2222", "c": "3333", "d": "4444"}
    {'a': '1111', 'b': '2222', 'c': '3333', 'd': '4444'}
    <class 'dict'>
    <class 'str'>
    <class 'dict'>
  • 相关阅读:
    1. 关于GCD的使用(串并行队列和同步异步函数的问题)
    陌院俅颗难炎先当粮澜
    openresty在centos/redhat6.7上部署
    tomcat 日志那点事
    Redhat6.7 切换Centos yum源
    Quartz corn时间表达式(转)
    Jquery控制滚动Div 滚动条事件
    fastjson排序 Map多层嵌套转换自动排序问题终极解决方案
    Spring 外部注入Bean (JAX-WS)
    SSH,如何恢复通过输入密码的方式来登录服务器
  • 原文地址:https://www.cnblogs.com/zouzou-busy/p/11407772.html
Copyright © 2011-2022 走看看