机器人框架从 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 文件中获取随机项?

如何删除我的 json 文件机器人框架中的方括号?

从多个关键字调用构建机器人框架列表

从 IBM Watson Assistant 获取我的聊天机器人中的选项列表

从 PokeAPI for DiscordBot 以 JSON 格式显示 JS 对象