我正在尝试在以下json响应中访问值“Tom”
{
"Key1": "Value1",
"Key2": [
{
"id": "123",
"name": "Scott"
},
{
"id": "454",
"name": "tom"
}
]
}
我正在使用robotframework的requestlibrary并且是python的新手。任何人都可以帮我从嵌套结构中获取此值。
谢谢!
答案 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']}