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