python - Robot Framework - 将 JSON 转换为字典

标签 python json robotframework

我在使用 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}。

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

最佳答案

I am under the impression that the json.loads function will return a string and not a dictionary

这是不正确的。它返回一个字典。您不需要调用 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

    

关于python - Robot Framework - 将 JSON 转换为字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46608226/

相关文章:

python - 使用 pandas 读取 gzip 文件不起作用

python - 值错误 : too many values to unpack - Is it possible to ignore one value?

json - 如何将 map[string]interface{} 转换为不同类型的结构?

python - 有没有一种优雅的方法可以使用自动生成的参数调用机器人框架测试?

robotframework - 机器人框架 : run setup for an entire test suite

python - 在 App Engine 上生成 GUID 的好方法?

python - setup.py 示例?

javascript - 复杂的 JSON 结构 + Dojo Selects

用于在 C 中解析 JSON 的代码生成器和库

selenium - 在页面弹出窗口中找不到带有定位器的元素