来自swagger服务器的JSON响应以单引号形式收到,由于JSON.loads失败,robot框架验证失败



我正试图通过robot-framework验证我的swagger服务器代码。服务器处理程序正在返回一个字典(或json对象?)。机器人框架试图验证响应,但给出了这个错误。

失败:JSONDecodeError:要求属性名用双引号括起来:第1行第2列(字符1)

问题是响应有单引号而不是双引号(或者响应没有被标识为json),因此json.loads失败。

我尝试将内容类型和mimetype标头添加为"application/json"。试过烧瓶的jsonify。

这是返回响应的代码部分。

def grants_post(project, GrantRequest, Accept=None, Content_Type=None, Authorization=None):
# code that creates a large dictionary called rsp.
grant_uri_id = str(uuid.uuid4())
AsyncGrantResponses[grant_uri_id] = rsp
print(rsp['output'])
return rsp['output'], 201, {'location': "sol003/grant/" + project + "/grant/v1/grants/" + grant_uri_id , 'mimetype' : "application/json" }

以下是机器人框架的结果。架构验证后,它执行json.loads。使用了"……"在b/w中,因为数据很大。

创建新的Grant-Synchronous模式
|FAIL|评估表达式json.loads('''{'extVirtualLinks': [{'vimConnectionId': 'vimAccount', 'extCps':........................... 'id': '718bb9a2-37dd-4238-a393-7936a8b53086'}''')失败:JSONDecodeError:应将属性名称用双引号括起来:第1行第2列(字符1)

我认为预期的输出应该在数据中使用双引号,而不是单引号。

问题是机器人测试套件代码,我更改了这一行,

${json} = evaluate json.loads('''${result}''') json

${json} = evaluate json.loads(json.dumps(${result})) json

现在它验证良好。

最新更新