Robotframework:API测试:如何访问嵌套密钥:来自json响应的值

时间:2018-04-02 20:07:33

标签: json robotframework

我正在尝试在以下json响应中访问值“Tom”

{
"Key1": "Value1",
"Key2": [
    {
        "id": "123",
        "name": "Scott"
    },
    {
        "id": "454",
        "name": "tom"
    }
]
}

我正在使用robotframework的requestlibrary并且是python的新手。任何人都可以帮我从嵌套结构中获取此值。

谢谢!

2 个答案:

答案 0 :(得分:0)

我认为它会像response.Key2[1].name

假设{"id":"123","name":"Scott"}位于索引0,  和{"id":"454","name":"tom"}索引1

答案 1 :(得分:0)

截至当前的Robotframework公开版本,您无法通过名称直接访问子键(例如response.Key2[1].name) - 框架的字典变量分辨率不能超过1级;随着版本3.0.3即将发生变化,该版本将很快公布(2018年4月中旬,根据最新公告)。

同时 - 通常,您可以使用普通的python字典来访问它,并使用索引列出访问权限 - 无论框架的实现如何,都可以保证工作。

鉴于响应采用以下格式:

${resp}=       Get Request   your_session     api/sample_endpoint   # the content of ${resp} is a normal string

,你需要在python对象中转换它

${as_json}=    To Json       ${resp}          # ${as json} is now a python's object - dictionary in your case

,最后使用python的索引获取值:

${value}=      Set Variable  ${as_json['Key2'][1]['name']}