json定义轻量级数据交换格式友好,易读易写:对机器友好,易于解析生成由列表和字典组成场景生成:将对象生成成字符串,保存输入文件,数据库、网络传输等解析:将文件、数据库、网络传输的字符串解析成Python对象跨语言数据交换:Python与Java等其他语言的数据交互json库Python自带库,无需安装。具体使用方法:PythonJSON|菜鸟教程最常用的场景就是接口自动化测试脚本的数据格式转换。因为前后端是分开开发的,后端传输数据最常用的格式是json,所以在给请求体传递参数的时候,需要先转成json格式。调试代码时,用于美化json格式:returnjson.dumps(r.json(),indent=2,ensure_ascii=False)defclose_return_detail_and_release(self):"""对于状态为-B2B的订单已经returned,关闭详情并发布:return:"""url=self.ip+"/api/scm/auth/scm/scmPoD/close.do"#获取状态为B2B的采购订单详情returnmat_list=self.order_detail_search_by_status("Returned")["data"]["list"][0]#获取订单详情id,poCodedetail_id,po_code=mat_list["id"],mat_list["poCode"]dbObjJson=[{"id":detail_id,"haveBusiness":True,"canClose":False,"poCode":po_code,}]#将dbObjJson转换为json格式dbObjJson=json.dumps(dbObjJson,ensure_ascii=False,indent=2)params={"dbObjJson":dbObjJson,"reason":"接口自动化测试-关闭详情","isRelease":"true","skipWarn":"false",}r=self.s.post(url=url,params=params)#美化json数据格式indent=2:缩进2个空格;ensure_ascii=False:中文转义#returnjson.dumps(r.json(),indent=2,ensure_ascii=False)returnr.json()NoteaboutTypeError:ObjectoftypedateisnotJSONserializableError:python中这个错误的根本原因是:json.dumps()cannotconvertthedatetimetimeformat{}的数据。dumps的原功能是将dict转成str格式,不支持时间转换。其实解决这个问题很简单。到数据,强行转成字符串,然后执行请求解决错误链接
