Ros*_*mas 3 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}
Run Code Online (Sandbox Code Playgroud)
我的印象是 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12197 次 |
| 最近记录: |