【问题标题】:edit a JSON file in Robot Framework在 Robot Framework 中编辑 JSON 文件
【发布时间】:2018-04-27 06:27:52
【问题描述】:

我想将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}

【问题讨论】:

  • 您似乎没有尝试将数据保存回文件。您是否尝试过使用Create file 保存数据?

标签: json robotframework


【解决方案1】:

看来您还没有完全了解该库的工作原理。当您调用 Load JSON From File 时,库将读取文件,并将数据作为内存中的变量返回(在您的情况下,您的 ${json_obj} 变量)。

现在,每当您更改此数据时,您只是在更改内存中的数据,而不是文件本身。

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

【讨论】:

    【解决方案2】:

    感谢大家的帮助!以下是它是如何完成的代码。 我使用库operating system 将更改写入文件,但首先使用Convert JSON To String 关键字。

    *** 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
    

    【讨论】:

      猜你喜欢
      • 2018-11-28
      • 2021-09-07
      • 2021-10-18
      • 2019-02-02
      • 1970-01-01
      • 2018-05-03
      • 1970-01-01
      • 2016-08-06
      • 2021-10-09
      相关资源
      最近更新 更多