【问题标题】:Robotframework : API Test :How to access a nested key:value from a json responseRobotframework:API 测试:如何从 json 响应访问嵌套键:值
【发布时间】:2018-09-12 01:43:10
【问题描述】:

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

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

我正在使用机器人框架的请求库,并且是 python 新手。谁能帮我从嵌套结构中获取这个值。

谢谢!

【问题讨论】:

    标签: json robotframework


    【解决方案1】:

    我认为它会类似于response.Key2[1].name

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

    【讨论】:

      【解决方案2】:

      在 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']}
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-30
        • 2019-07-08
        相关资源
        最近更新 更多