机器人框架从 JSON 列表中获取
Posted
技术标签:
【中文标题】机器人框架从 JSON 列表中获取【英文标题】:Robot framework get from JSON list 【发布时间】:2016-09-24 12:46:19 【问题描述】:我有这样的数据
"_embedded":[
"attr_name":"attr_value_1",
"attr_name":"attr_name_2"
]
我想得到第一个属性attr_value_1
。
您知道如何在 Robot 框架中执行此操作吗? Get JSON /_embedded[0]/attr_name
之类的东西?
【问题讨论】:
这似乎与 ***.com/q/35891061/7432 重复。 我不这么认为,他不只是“生成的令牌”,它不是 json 数组中的变量 这个问题和我标记为重复的问题都是关于基于键从一些 json 数据中获取属性。你的有什么不同?如果我要回答这个问题,答案将与其他问题几乎完全相同。 另外,这是实际数据吗?它看起来像非法的 json,因为同一个键出现了两次。如果是非法 json,则解决方案与合法 json 不同。 我认为这是合法的 - 具有 atr_name 属性的对象列表。我也认为这个问题是重复的。问题是如何从字典中对象内的列表中的对象获取属性,尽管问题应该是关于字典的。 【参考方案1】:您可以将 JSON 数据转换为 python 对象,然后使用机器人的extended variable syntax 获取元素。在python中,该值被引用为data["_embedded"][0]["attr_name"]
,它直接转换为$data["_embedded"][0]["attr_name"]
的机器人扩展变量语法
这是一个完整的例子:
*** Test Cases ***
Example
$json= catenate SEPARATOR=\n
... "_embedded":[
... "attr_name":"attr_value_1",
... "attr_name":"attr_name_2"
... ]
...
$data= evaluate json.loads('''$json''') json
should be equal as strings $data["_embedded"][0]["attr_name"] attr_value_1
should be equal as strings $data["_embedded"][1]["attr_name"] attr_name_2
【讨论】:
以上是关于机器人框架从 JSON 列表中获取的主要内容,如果未能解决你的问题,请参考以下文章
如何解决“找不到名称为‘附加到列表’的关键字”。机器人框架错误
discord.js:我如何从 json 文件中获取随机项?