2016-04-28 178 views
1

我在以下環境中使用機器人框架。Robotframework:如何創建包含列表的json

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

我想創建的JSON包括列表。 但是在腳本之後,Json.dumps將部分解釋爲字符串。

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

有您從詞典生成JSON,而不僅僅是硬編碼的實際JSON字符串理由嗎? –

回答

0

你不是想要實現這個?:

*** 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 ***測試用例*** 測試1 $ {REQ} MyKw部分= @ {份}類型= $ {INT} 日誌要控制檯$ {REQ} *** ***關鍵詞 MyKw [參數] @ {ARGS} $ { req_dict}創建字典 :FOR $ {pair} IN @ {args} \ $ {key} $ {value} =分割字符串$ {pair} = \ Set to Dictionary $ {req_dict} $ {key} = $ {value} $ {tmp_json} Json.Dumps $ {req_dict} $ {req_json}替換字符串$ {tmp_json} u'' [返回] $ { req_json} ' – rootpetit

+0

對不起,這太難看了。我想創建下面的json。 '{「part」:「['Z1','Z2']」,「type」:123}' – rootpetit

相關問題