Python接口测试中eval、json的dumps的使用

def request(self, requestMethod, requestUrl, paramsType, requestData=None, headers=None, cookies=None):
    if requestMethod.lower() == "post":
        if paramsType == "form":
            response = self.__post(url=requestUrl, data=json.dumps(eval(requestData)), headers=headers,cookies=cookies)
            return response
        elif paramsType == "json":
            response = self.__post(url=requestUrl, json=json.dumps(eval(requestData)), headers=headers, cookies=cookies)
            return response

eval、json.dumps:

  • eval函数就是实现str与list、dict、tuple之间的转化

  • str函数把list,dict,tuple转为为字符串

  • json.dumps是将一个Python数据结构转换为JSON

  1. requestData: {'username': 'zhangdongliang000', 'password': '9f4f4ec3d6fc9168cea54c4cc00c3eba'}
  2. type requestData: <class 'str'>
  3. 得到的请求参数,requestData是str类型,即"{'username': 'zhangdongliang000', 'password': '9f4f4ec3d6fc9168cea54c4cc00c3eba'}"
  4. 通过eval(requestData),可以将两个引号去掉,让其变为dict类型,即{'username': 'zhangdongliang000', 'password': '9f4f4ec3d6fc9168cea54c4cc00c3eba'}
  5. 然后再用json.dumps()将其转换为JSON串(单引号),即’{'username': 'zhangdongliang000', 'password': '9f4f4ec3d6fc9168cea54c4cc00c3eba'}‘

注意转变为json串后引号就是单引号了

猜你喜欢

转载自blog.csdn.net/chang_jinling/article/details/89968134