gpt4 book ai didi

ROBOT 中的 Json 处理

转载 作者:行者123 更新时间:2023-12-03 21:18:49 24 4
gpt4 key购买 nike

我有一个 Json 文件,其中有一个字段,我需要编辑并保存文件以供下次使用。

但我需要编辑的字段如下所示,

我需要为该字段分配的值是在运行时随机生成的,我将在一个变量中捕获它并将其传递给这个 json 特定键“dp”,然后保存 json。

保存的 json 将用于 REST POST url。

            {
"p": "10",
"v": 100,
"vt": [
{
"dp": "Field to be edited"(integer value) ,
]
}

最佳答案

最简单的解决方案是编写一个可以为您更改值的 python 关键字。但是,您可以通过执行以下步骤使用机器人关键字解决此问题:

  • 将 JSON 字符串转换为字典
  • 修改字典
  • 将字典转换回 JSON 字符串

  • 将 JSON 字符串转换为字典

    Python 有一个模块 ( json) 用于处理 JSON 数据。您可以使用 evaluate使用 loads 将 JSON 字符串转换为 python 字典的关键字(加载字符串)该模块的方法。

    假设您的 JSON 数据位于名为 ${json_string} 的机器人变量中,您可以将其转换为 python 字典,如下所示:
    ${json}=    evaluate    json.loads('''${json_string}''')    json

    综上所述, ${json}现在包含对包含所有 json 数据的字典的引用。

    修改字典

    Collections机器人附带的库有一个名为 set to dictionary 的关键字可用于设置字典元素的值。在这种情况下,您需要更改嵌套在 vt 中的字典的值。 JSON 对象的元素。我们可以使用机器人的 extended variable syntax 引用该嵌套字典。 .

    例如:
    set to dictionary    ${json["vt"]}    dp=the new value

    有了这个, ${json}现在有了新的值(value)。但是,它仍然是一个 python 字典而不是 JSON 数据,所以还有一步。

    将字典转换回 JSON

    将字典转换回 JSON 与第一步相反。即,使用 dumps json模块的(转储字符串)方法:
    ${json_string}=    evaluate    json.dumps(${json})    json

    有了这个, ${json_string}将包含一个有效的 JSON 字符串以及修改后的数据。

    完整示例

    以下是一个完整的工作示例。 JSON 字符串将在替换新值之前和之后打印:
    *** Settings ***
    Library Collections

    *** Test Cases ***
    Example
    ${json_string}= catenate
    ... {
    ... "p": "10",
    ... "v": 100,
    ... "vt": {
    ... "dp": "Field to be edited"
    ... }
    ... }

    log to console \nOriginal JSON:\n${json_string}
    ${json}= evaluate json.loads('''${json_string}''') json
    set to dictionary ${json["vt"]} dp=the new value
    ${json_string}= evaluate json.dumps(${json}) json
    log to console \nNew JSON string:\n${json_string}

    关于ROBOT 中的 Json 处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35262216/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com