在Robot框架中编辑JSON文件

在Robot框架中编辑JSON文件,json,robotframework,Json,Robotframework,我想将driver=1添加到我的sample_json.json文件中,但无法找到永久写入这些更改的方法。此代码将键值保存到对象${json_obj},但不会对文件sample_json.json sample_json.json { "Phones": { "debug": "on", "phone1": { "key":"value" }, "phone2": {

我想将
driver=1
添加到我的
sample_json.json
文件中,但无法找到永久写入这些更改的方法。此代码将键值保存到对象
${json_obj}
,但不会对文件
sample_json.json

sample_json.json

{
    "Phones": {

        "debug": "on",

        "phone1": {
            "key":"value"            
        },

        "phone2": {
            "key":"value"
        }
    }
}
机器人文件

*** Settings ***
Library    JSONLibrary

*** Variables ***
${SUBSCRIBER_A}    phone1

*** Test Cases ***
testcase 
   test    ${SUBSCRIBER_A}

*** Keywords ***
test
    [Arguments]    ${SUBSCRIBER_A}
    ${json_obj}=    Load JSON From File     sample_json.json
    ${object_to_add}=   Create Dictionary   driver=1
    ${json_obj}=    Add Object To Json    ${json_obj}    $..${SUBSCRIBER_A}    ${object_to_add}

看起来你还没有完全理解这个库是如何工作的。当您调用
从文件加载JSON
时,库将读取该文件,并将数据作为内存中的变量返回(在您的例子中,是
${JSON_obj}
变量)

现在,无论何时更改这些数据,都只是更改内存中的数据,而不是文件本身


您需要用新数据覆盖文件,这可以通过使用关键字来实现。您可能需要首先使用关键字将JSON字典转换为字符串。

看起来您还没有完全理解该库的工作原理。当您调用
从文件加载JSON
时,库将读取该文件,并将数据作为内存中的变量返回(在您的例子中,是
${JSON_obj}
变量)

现在,无论何时更改这些数据,都只是更改内存中的数据,而不是文件本身


您需要用新数据覆盖文件,这可以通过使用关键字来实现。您可能需要首先使用关键字将JSON字典转换为字符串。

谢谢您的帮助!下面是如何完成的代码。 我使用库
操作系统
来写入对文件的更改,但首先使用了
将JSON转换为字符串
关键字

*** Settings ***
Library    JSONLibrary
Library    OperatingSystem

*** Variables ***
${SUBSCRIBER_A}    phone1

*** Test Cases ***
testcase
   test    ${SUBSCRIBER_A}

*** Keywords ***
test
    [Arguments]    ${SUBSCRIBER_A}
    ${json_obj}=    Load JSON From File     example.json
    ${object_to_add}=   Create Dictionary   driver=1
    ${json_obj}=    Add Object To Json    ${json_obj}    $..${SUBSCRIBER_A}    ${object_to_add}
    ${new_obj}=    Convert JSON To String    ${json_obj}
    Create File    example.json    ${new_obj}    UTF-8

谢谢你们的帮助!下面是如何完成的代码。 我使用库
操作系统
来写入对文件的更改,但首先使用了
将JSON转换为字符串
关键字

*** Settings ***
Library    JSONLibrary
Library    OperatingSystem

*** Variables ***
${SUBSCRIBER_A}    phone1

*** Test Cases ***
testcase
   test    ${SUBSCRIBER_A}

*** Keywords ***
test
    [Arguments]    ${SUBSCRIBER_A}
    ${json_obj}=    Load JSON From File     example.json
    ${object_to_add}=   Create Dictionary   driver=1
    ${json_obj}=    Add Object To Json    ${json_obj}    $..${SUBSCRIBER_A}    ${object_to_add}
    ${new_obj}=    Convert JSON To String    ${json_obj}
    Create File    example.json    ${new_obj}    UTF-8

您似乎没有试图将数据保存回文件。您是否尝试使用保存数据?您似乎没有尝试将数据保存回文件。您是否尝试使用来保存数据?