0
我正在使用一种API,该API需要在创建资源时对json键值对进行排序。该API提供了一种方法(称为new),允许您创建一个GET请求来返回对象模型。我想用我的RobotFramework测试用例中的值更新模型。在Robot Framework中是否有本地方式来发出GET请求并保留服务器发送的json对象顺序?这里的JSON响应获取新方法的一个例子:如果我使用下面的键值被自动地整理如何保存机器人框架中的Json对象顺序
{
"account": {
"@id": "",
"@uri": "",
"@oldID": "",
"person": {
"@id": "",
"@uri": ""
},
"accountType": {
"@id": "",
"@uri": "",
"name": null
},
"accountName": "",
"createdDate": null,
"createdByPerson": {
"@id": "",
"@uri": ""
},
"lastUpdatedDate": null,
"lastUpdatedByPerson": {
"@id": "",
"@uri": ""
}
}
}
:
${r}= GET Request MySession /accounts/new
你不能依赖任何字典中的键的顺序。这种结构甚至没有规定顺序 - 即,没有任何订单。从这个角度来看,json并不仅仅是字典和列表的嵌套结构。见例如这:http://stackoverflow.com/questions/4515676/keep-the-order-of-the-json-keys-during-json-conversion-to-csv –
@JanKovařík一般来说你是正确的,但RF是一个特殊情况 - 其中的字典基于[OrderedDict](https://docs.python.org/2/library/collections.html#collections.OrderedDict),因此插入顺序被保留。 – Todor
@pgtips - 你正在使用RequestsLibrary,对吧?我没有看到任何东西,它会重新排序响应键......你确定它不是服务器把它们放在意外的顺序吗?手动触发相同的请求会生成与RF中不同的结构? – Todor