繁体   English   中英

Robot Framework - 将 JSON 转换为字典

[英]Robot Framework - Convert JSON to dictionary

我在使用 Robot Framework 将 JSON 文件转换为字典时遇到问题。

*** Variables ***
${MY_DATA_TABLE VALUES}
${MY_JSON_FILE}    *path_to_JSON\test.json*


*** Keywords ***
Converting a JSON File
    ${MY_DATA_TABLE_VALUES_TEMP}   get file   ${MY_JSON_FILE}
    ${MY_DATA_TABLE_VALUES}    evaluate  json.loads('''${MY_DATA_TABLE_VALUES_TEMP}''')    json
    ${MY_DATA_TABLE_VALUES}=       convert to dictionary   ${MY_DATA_TABLE_VALUES}
    [Return]  ${MY_DATA_TABLE_VALUES}

我的印象是 json.loads 函数将返回一个字符串而不是字典,这就是我尝试转换为字典的原因。

我打算在更多的 RF 关键字中访问变量 ${MY_DATA_TABLE_VALUES}。

任何指导将不胜感激。 谢谢

我的印象是 json.loads 函数将返回一个字符串而不是字典

那是不正确的。 它返回一个字典。 你不需要调用convert to dict ,你的代码没有它也能正常工作。

这是一个工作示例:

*** Settings ***
Library  Collections

*** Variables ***
${MY_DATA_TABLE_VALUES_TEMP}  {"foo": "this is foo", "bar": "this is bar"}

*** Keywords ***
Converting a JSON File
    ${MY_DATA_TABLE_VALUES}    evaluate  json.loads($MY_DATA_TABLE_VALUES_TEMP)    json
    [Return]  ${MY_DATA_TABLE_VALUES}

*** Test Cases ***
Example
    ${data}=  converting a json file
    ${datatype}=  evaluate  str(type($data))
    should be equal  ${datatype}  <class 'dict'>
    should be equal  ${data['foo']}  this is foo

    

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM