2017-10-06 2 views
0

Robot Framework를 사용하여 JSON 파일을 사전으로 변환하는 데 문제가 있습니다.로봇 프레임 워크 - 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} 변수에 액세스하려고합니다.

모든 안내를 받으실 수 있습니다. 감사

+0

당신이 게시 코드의 현재의 결과는 무엇입니까 : 여기

는 작업 예제? –

+0

사전이 변수에로드되고 있다고 생각하지 않습니다. 나는 변수가 공백으로 남아 있다고 생각한다. –

+0

변수를 참조하려고 할 때 변수가 json.loads 코드 ???의 문자열이라고 생각합니다. '문자열 인덱스는 유니 코드가 아닌 정수 여야합니다.' –

답변

2

은 내가 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} <type 'dict'> 
    should be equal ${data['foo']} this is foo 
관련 문제