• Python3-接口自动化-11-使用join方法请求参数拼接,格式key1=value1&keys=value2....


    一、join语法

    定义:用于将序列中的元素以指定的字符连接生成一个新的字符串

    语法:str.join(sequence)       sequence -- 要连接的元素序列。

    1.1  使用“-”,"","&"等连接列表/元组中个元素,生成一个字符串

    s = ['chu','shu','jin']
    # 用-去连接列表中每个元素
    print("-".join(s))    
    # ------------输出--------
    chu-shu-jin
    
    # 用空去连接列表中每个元素,用此方法可将列表转成字符串
    print("".join(s))  
    # ------------输出--------     
    # chushujin
    # 用&去连接列表中每个元素,用此方法可将列表转成字符串
     print("&".join(s))    
    # ------------输出--------     
    chu&shu&jin

    1.2 元组是相同原理

    s = ('chu','shu','jin')
    # 用-去连接列表中每个元素
    print("-".join(s))    
    # ------------输出--------
    chu-shu-jin
    
    # 用空去连接列表中每个元素,用此方法可将列表转成字符串
    print("".join(s))  
    # ------------输出--------     
    # chushujin
    # 用&去连接列表中每个元素,用此方法可将列表转成字符串
     print("&".join(s))    
    # ------------输出--------     
    chu&shu&jin

    1.3 使用此方法去将一个字典进行连接   将字典按照key1=value1&keys=value2....输出

    1.3.1  首先将列表中的元组中的各元素按照a=11 b=22 c=33格式输出

    d = {"a":"11","b":"22","c":"33"}
    print(d.items())
    #------------输出-----------------
    dict_items([('a', 11), ('b', 22), ('c', 33)])    # 生成的是一个列表式迭代器
    第一种方法:
    首先将列表中的元组中的各元素按照a=11 b=22 c=33格式输出
    l = []
    for i in d.items():
        print(i)
    # ------------输出-----------------
     ('a', '11')
     ('b', '22')
     ('c', '33')
        print("=".join(i))
    # ------------输出-----------------
     a=11
     b=22
     c=33
        l.append("=".join(i))
    print(l)
    # ------------输出-----------------
     ['a=11', 'b=22', 'c=33']

     第二种简洁方法:使用列表推导式

    buildStr = ["=".join(i) for i in d.items()]
    print(buildStr)
    #------------输出-----------------
     ['a=11', 'b=22', 'c=33']

    1.3.2 将['a=11', 'b=22', 'c=33']列表中各元素按照a=11&b=22&c=33输出

    print("&".join(buildStr))
    #------------输出-----------------
     a=11&b=22&c=33

     二、实际应用

    参数格式:

    {
        "param":{"a":"11","b":"22","c":"33"},
        "token":"",
        "deviceId""",
         "d_track_data":{"session_id":"gfgfgfgfgfgfgfggfgfgfg","project":"主小程序","tdc":"","tpc":"","uuid":"bgbgbgbgbgbgbgbgbgbg","env":"minip"}
    }

    2.1 将入参进行分割,封装(切记下方加粗的参数要转化成字符串形式,否则下方拼接时会报错,只有key和value一样的类型才可以使用join拼接)

    def interface_param(token=None,loginId=None):
    
        param = {
                "a"           :"11",
                "b"           :"22",
                "c"           :"33"
                }
        d_track_data = {
                    "session_id"    :"gfgfgfgfgfgfgfggfgfgfg",
                    "project"       :"主小程序",
                    "tdc"           :"",
                    "tpc"           :"",
                    "uuid"          :"bgbgbgbgbgbgbgbgbgbg",
                    "env"           :"minip"
                    }
    
        data = {
            "param"         :str(param),      # 切记此处一定要转化成字符串
            "token"         :"{}".format(token if token else ""),
            "deviceId"      :"",
            "loginId"       :"{}".format(loginId if loginId else ""),
            "d_track_data"  :str(d_track_data) # 切记此处一定要转化成字符串
    } return data

    2.2 将参数以param={}&token=""&deviceId=""&d_track_data={}格式输出,如下封装的方法:

    def dict_build_to_string(data):
        buildStr = ["=".join(i) for i in data.items()]
        return "&".join(buildStr)

    2.3 调用方法,并输出结果

    param = dict_build_to_string(interface_param())
    print(param)
    #-------------------输出---------------------param={'a': '11', 'b': '22', 'c': '33'}&token=&deviceId=&loginId=&d_track_data={'session_id': 'gfgfgfgfgfgfgfggfgfgfg', 'project': '主小程序', 'tdc': '', 'tpc': '', 'uuid': 'bgbgbgbgbgbgbgbgbgbg', 'env': 'minip'}

    完美!



  • 相关阅读:
    android studio首次运行出错
    分享4种CSS3效果(360度旋转、旋转放大、放大、移动)
    重温CSS:Border属性
    CSS3之过渡Transition
    ASP.NET(C#)--Repeater中生成“序号”列
    Android开发过程问题集锦(Continuous updating)
    ZOJ Problem Set Vol 1(Update paste)
    MapReduce基本原理及应用
    Tensorflow之基于MNIST手写识别的入门介绍[转载]
    Tensorflow 计算模型——计算图
  • 原文地址:https://www.cnblogs.com/chushujin/p/14245229.html
Copyright © 2020-2023  润新知