zoukankan      html  css  js  c++  java
  • request 发送多层字典

    a. 客户端向服务端发送多层字典的值

    #客户端发送
    	obj = {
    	    'data':{
    	        "k1":"v1",
    	        "k2":"v2"
    	    },
    	    'status': True
    	}
      
    	#json发送
        requests.post("http://www.baidu.com",json=obj)
      
        #发送数据内部默认处理(会在内部把字典obj json.dumps序列成字符串,发送给服务端)
        #body: json.dumps(obj)
        #headers= {'content-type':'application/json'}   #默认加入
      
      
    #服务端接受上面格式发送的数据
    if request.method == 'POST':
            obj = json.loads(request.body.decode('utf-8'))

    b. request.post 和request.body

    #接受
    requests.boby
    	- 请求体原生的值
    
    requests.POST   
    	- 根据特殊的请求头从requests.boby获取数据,不能接受多层字典的数据
    

    c. 三者相等

    #方式一:
    
    requests.post("http://www.baidu.com",json=obj)
    
    #方式二: 
    
    requests.post(
        url="http://www.baidu.com",
        headers={'content-type':'application/json'},
        data=json.dumps(obj)
    )
    
    #方式三():
    
    requests.post(
        url="http://www.baidu.com",
        headers={'content-type':'application/json'},
        data=bytes(json.dumps(obj),encoding="utf-8")
    )

    d. 一般使用

    requests.post(
        url="",
        data={"name":"alex","pwd":123},  #把数据解析成 data = "user=alex&pwd=123"
        headers={'content-type':'application/x-www-form-urlencoded'}
    )
    

    但不能接受多层字典的数据,接受第二层字典只能接受key,不能接受value
    #headers= {'content-type':"application/x-www-form-urlencoded

     
    requests.post(
        url="",
       json={"name":"alex"},  #会把数据解析成大的字符串
        headers={'content-type':'application/json'}
    )

      

     

  • 相关阅读:
    JS中的this
    函数作用域
    全局作用域与变量的声明提前
    立即执行函数与For. . .in语句
    实参可以是任何值
    函数的参数和返回值
    JavaScript创建函数的三种方式
    JavaScript属性名和属性值
    十进制浮点数转换为二进制
    冰雹猜想或角谷定理
  • 原文地址:https://www.cnblogs.com/xuyaping/p/7750651.html
Copyright © 2011-2022 走看看