python - String variable args are treated as dict types in robot framework -
*** test cases *** log test run keyword logtype *** keyword *** logtype ${type_object}= evaluate type( ${tc_args} ) log console type object ${type_object} when run command, pybot -v tc_args:'{"a":"b"}' a.robot , robot prints, the type object <type 'dict'> but, isn't default behavior treat single quoted literals strings ? so, ideally must have printed <type 'str'> instead of <type 'dict'> . your variable string. check it, try dictionary keyword on (like "get dictionary" collections lib) , see fails. run code see it: *** settings *** library collections *** test cases *** log test # let's test proper dictionary ${dict} = create dictionary b ${value} = dictionary ${dict} should equal ${value} b log console ${\n}this real dictionary # ${tc_args} passed on command line # evaluate might let thing have dict ${type_object} = evaluate type( $...