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