【发布时间】:2017-06-20 01:35:27
【问题描述】:
我正在使用机器人框架编写测试。我正在尝试更新 json 字段中的值,但我看到了一些奇怪的行为。
我执行 HTTP GET 并接收 json。我检查一下原来的值是什么,
Log To Console | ${JSON["Components"]["SubComponents"]}
返回
valueA
然后我尝试更新如下值。
${JSON["Components"]["SubComponents"]}= | Set Variable | valueB
如果我以这种方式记录输出
Log To Console | ${JSON["Components"]["SubComponents"]}
我明白了
valueB
但如果我这样检查
Log To Console | ${JSON["Components"]}
我明白了
{u'SubComponents': valueA, u'MoreComponents': whatever}
发生了什么,为什么不更新?
我需要更新 JSON 字段,以便进行 HTTP PATCH。 我试过关注Json handling in ROBOT 但它不起作用,我认为这与我的带有单引号的 JSON 文件有关。
仅供参考,我是 json 和机器人框架的新手
【问题讨论】:
-
Python 代码在哪里,你为什么要管道?您可以在 Python 中编辑 JSON 变量
-
管道是机器人框架的工作方式。或者你可以使用两个空格。我在 python 中使用 Evaluate 对其进行编辑的所有尝试都失败了。我链接到的帖子尝试这样做,但它对我不起作用,我不知道如何修复它。
-
@cricket_007 -
|用作关键字分隔符,而不是我们通常知道的通用管道。可以使用管道或空间分隔符 - 偏好问题。 -
我实际上找到了一个解决方案。如果我这样做
Set To Dictionary | ${JSON["Components"]} | SubComponents=valueB,那么我会看到正确的行为。我仍然想知道上面发生了什么以及为什么我在一个情况下看到它但是不是另一个。这是我链接到的帖子中建议的解决方案的一部分,但由于问题我无法通过 json.load() 所以我从来没有尝试过。
标签: python json http robotframework