【问题标题】:How to get value off JSON in Robot framework如何在 Robot 框架中获取 JSON 的值
【发布时间】:2022-11-11 23:26:33
【问题描述】:

例如,我有一个日志,每次运行时都会发生变化,下面是一个示例。我想取其中一个值(id)作为变量,并仅将 id 记录到控制台或在其他地方使用该值。

[
  {
    "@type": "type",
    "href": [
      {
        "@url": "url1",
        "@method": "get"
      },
      {
        "@url": "url2",
        "@method": "post"
      },
            
      {
        "@url": "url3",
        "@method": "post"
      }
    ],
    "id": "3",
    "meta": [
      {
        "key": "key1",
        "value": "value1"
      },
      {
        "key": "key2",
        "value": "value2"
      }
    ]
  }
]

我想在变量中获取 id,因为每次运行机器人框架后 id 都会发生变化

【问题讨论】:

  • 您应该提供一个代码示例,您尝试了什么以及应该如何改进它。现在您可以从示例中看到的唯一内容是您的 JSON 元素实际上是一个列表,其中嵌套了一个字典 - 也许您应该首先尝试提取列表元素并尝试使用它。

标签: python logging automated-tests robotframework


【解决方案1】:

你可以在这里看到你得到的 JSON 是列表格式的。这意味着要从 JSON 中获取值,您首先需要读取 JSON 对象,然后将字典从列表中取出,然后才能访问您需要提取的键值。

Robot Framework 支持使用带有 Evaluate 关键字的 Python 语句。当我们需要简单地将一些字符串解析为 JSON 时,我们可以使用

${DATA}=    Evaluate    json.loads("""${DATA}""")

请注意,此处的 ${DATA} 应包含您的 JSON 作为字符串。

现在我们有了 JSON 对象,我们可以用它做任何我们想做的事情。在您的情况下,我们需要将列表项从索引 0 获取到变量,然后我们可以正常访问字典键。以下应该可以正常工作。

${DICT}=    Get From List          ${DATA}    0
${ID}=      Get From Dictionary    ${DICT}    id

【讨论】:

    猜你喜欢
    • 2019-01-31
    • 2015-10-28
    • 1970-01-01
    • 2021-09-28
    • 2019-07-22
    • 1970-01-01
    • 2020-01-18
    • 2021-11-21
    • 2021-11-10
    相关资源
    最近更新 更多