【问题标题】:How to get length this Json element in Robot Framework如何在机器人框架中获取这个 Json 元素的长度
【发布时间】:2021-05-14 01:02:12
【问题描述】:

我想在 Robot Framework 中获取这个 json 元素的长度。

Json 示例

[
  [
    {
      "a": "2020-01",
      "value": "1"
    },
    {
      "a": "2020-02",
      "value": "2"
    },
    {
      "a": "2020-03",
      "value": "10"
    },
    {
      "a": "2020-04",
      "value": "9"
    },
    {
      "a": "2020-05",
      "value": "0"
    },
    {
      "a": "2020-06",
      "value": "7"
    }
  ]
]

预期的结果是

a 2020-01
value 1
a 2020-02
value 2
a 2020-03
value 10
a 2020-04
value 9
a 2020-05
value 0
a 2020-06
value 7

长度 = 6

我试试

${data_length}=      get length       ${json_data}

不工作

我认为有 [ ] 2 个级别。请指导我,谢谢

【问题讨论】:

  • 那么你期待什么结果呢?长度为 1 还是 6?两者都是正确的,但取决于您的需要。
  • 感谢您的评论。我已经添加了预期的结果

标签: python json robotframework


【解决方案1】:

您需要将JSON转换为python数据结构,然后可以在最外层列表的第一个元素上使用Get Length关键字。

这是一种方法。它假定 JSON 数据不为空,并且原始 JSON 数据位于名为${json_data}的变量中

${data}=    Evaluate  json.loads($json_data)
${length}=  Get length  ${data[0]}

Should be equal as numbers  ${length}  6

【讨论】:

  • Evaluate failed: TypeError: the JSON object must be str, bytes or bytearray, not dict
  • @MaherShrubby:没有告诉我是哪条线路导致了这个问题,我无能为力。听起来您可能已经将${json_data} 转换为字典,在这种情况下,您可以忽略我示例中的第一行。您声称 ${json_data} 是 JSON,这意味着它是一个字符串。你的错误意味着它不是。
猜你喜欢
  • 2016-10-24
  • 2021-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-24
  • 2018-05-04
  • 2013-11-18
  • 2017-09-15
相关资源
最近更新 更多