2016-04-28 21 views
1

以下の環境でロボットフレームワークを使用します。Robotframework:リストを含むjsonを作成する方法

  • のPython 2.7.6
  • robotframework 2.8.7
  • のUbuntu 14.04.3 LTS

私はリストを含めるJSONを作成したいです。 しかし、スクリプトに続いて、Json.dumpsはpartをstringとして解釈します。

*** Settings *** 
Library Collections 
Library json 
Library String 

*** Variables *** 
${NAME} XXXX 
${ID} YYYY 
${PART_1} ZZZ1 
${PART_2} ZZZ2 

*** Test Cases *** 
Test Create Json 
    ${req_dict} Create Dictionary name=${NAME} id=${ID} part=[${PART_1},${PART_2}] 
    Log To Console *** Test Create Json Result *** 
    Log To Console ${req_json} 

*** Keywords *** 
Prepare Json Keyword 
    [Arguments] @{args} 
    ${req_dict} Create Dictionary 
    :FOR  ${pair} IN  @{args} 
    \  ${key} ${value}=  Split String ${pair} = 
    \  Set To Dictionary ${req_dict} ${key}=${value} 
    ${req_json} Json.Dumps ${req_dict} 
    [Return] ${req_json} 

この場合、ロボットは

{"part": "[ZZZ1,ZZZ2]", "name": "XXXX", "id": "YYYY"} 

を示ししかし、私は次のようなJSONを作成したいです。

{"part": ["ZZZ1","ZZZ2"], "name": "XXXX", "id": "YYYY"} 

リストを解釈するにはどうすればよいですか?

+0

?:達成したいしませんでしたか? –

答えて

0

あなたは、これはあなたが辞書からJSONを作成するだけではなく、実際のJSON文字列をハードコーディングしている理由がある

*** Settings *** 
Library json 

*** Variables *** 
${NAME} XXXX 
${ID} YYYY 
${PART_1} ZZZ1 
${PART_2} ZZZ2 
@{parts} ${PART_1} ${PART_2} 

*** Test Cases *** 
Test Create Json 
    ${req_dict} Create Dictionary name=${NAME} id=${ID} [email protected]{parts} 
    Log To Console \n*** DICTIONARY *** 
    Log To Console ${req_dict} 
    ${req_json} Json.Dumps ${req_dict} 
    Log To Console *** JSON *** 
    Log To Console ${req_json} 
+0

ありがとうございます。私はあなたのサンプルを試して、それは正しく動作します!しかし、追加の問題が発生します。私の場合、いくつかの引数は文字列ではなく整数として評価されたいと思っています。これを与えると辞書にキャストすべきですか?それとももっと良い方法がありますか? – rootpetit

+0

'*** ***セッティング ライブラリコレクション ライブラリJSON ライブラリ文字列 ***変数*** @ {}の部分Z1 Z2 $ {INT} 123 ***テストケース*** Test1を$ {REQ} MyKw部= @ {部分} TYPE = $ {INT} ログインするコンソール$ {REQ} ***キーワード*** MyKw [引数] {}引数 $ {@ req_dict}辞書を作成する :FOR $ {pair} IN @ {args} \ $ {key} $ {value} =分割文字$ {pair} =$ {req_jict} $ {tmp_json} $ {req_jict} $ {req_jict} $ {req_jict} $ {tmp_json} $ {tmp_json} $ {req_dict} $ {req_dict} $ { req_json} ' – rootpetit

+0

私は残念ですが、見るのは大変です。私はjsonに続いて作成したい。 '{"part": "[' Z1 '、' Z2 ']'、 'type':123}' – rootpetit

関連する問題