2017-11-14 13 views
0

driver=1sample_json.jsonファイルに追加しますが、これらの変更を永久に書き込む方法を見つけることはできません。このコードは、オブジェクト${json_obj}にキーと値が保存されますが、sample_json.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} 
+0

データをファイルに保存しようとしていないようです。 [Create file](http://robotframework.org/robotframework/latest/libraries/OperatingSystem.html#Create%20File)を使ってデータを保存しようとしましたか? –

答えて

2

がどのように見えるのファイルに変更を加えることはありませんライブラリの仕組みを完全には理解していません。 Load JSON From Fileに電話すると、ライブラリはファイルを読み込み、メモリ内の変数(あなたの場合は${json_obj}変数)としてデータを返します。

この時点で、このデータを変更すると、ファイル自体ではなく、メモリ内のデータのみが変更されます。

Create Fileキーワードを使用して新しいデータを上書きする必要があります。 Convert JSON To Stringキーワードを使用して、まずJSON辞書を文字列に変換する必要があります。

1

お世話になりました!以下はコードがどのように行われたかです。 ファイルに変更を書き込むためにライブラリ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 
関連する問題