【问题标题】:Robotframework: how to create json that include listRobotframework:如何创建包含列表的 json
【发布时间】:2016-04-29 23:14:43
【问题描述】:

我在以下环境中使用机器人框架。

  • Python 2.7.6
  • 机器人框架 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"}

要解释列表,我该如何更改它?

【问题讨论】:

  • 您是否有理由从字典中创建 json,而不仅仅是硬编码实际的 json 字符串?

标签: json robotframework


【解决方案1】:

你不想实现这个吗?:

*** 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}    part=@{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}

【讨论】:

  • 感谢您的回答。我试过你的样品,它工作正常!但是出现了额外的问题......在我的情况下,一些参数想要被评估为整数而不是字符串。如果我同意这个,我应该在字典中转换吗?还是有更好的办法?
  • *** Settings *** Library Collections Library json Library String *** Variables *** @{parts} Z1 Z2 ${INT} 123 *** Test Cases *** Test1 ${req} MyKw part=@{parts} type=${INT} Log To Console ${req} *** Keywords *** MyKw [Arguments] @{args} ${req_dict} Create Dictionary :FOR ${pair} IN @{args} \ ${key} ${value}= Split String ${pair} = \ Set To Dictionary ${req_dict} ${key}=${value} ${tmp_json} Json.Dumps ${req_dict} ${req_json} Replace String ${tmp_json} u' ' [Return] ${req_json}
  • 很抱歉它太难看到了。我想创建以下 json。 {"part": "['Z1', 'Z2']", "type": 123}
  • Robot 中的数字是用 ${number} 标记编写的。示例:${88}。如果您发现我的答案正确,请正确标记:)
猜你喜欢
  • 1970-01-01
  • 2022-12-15
  • 2017-10-08
  • 1970-01-01
  • 1970-01-01
  • 2022-11-29
  • 1970-01-01
  • 1970-01-01
  • 2017-10-01
相关资源
最近更新 更多