na2193
na2193

Reputation: 43

Load JSON File into Robot Framework

I am trying to load a JSON file and use the values to perform some actions based on my tests. I tried to load the json value which I think I got right, but when trying to log the output, I got error message:

Resolving variable '${qa["REQUEST_ID"]}' failed: TypeError: list indices must be integers or slices, not str

Not exactly sure what this means since I am new to Robot Framework. This is what I did to load and log the values:

    ${file}     Get File    ${CURDIR}/RequestIDs.json
    ${qa}       Evaluate    json.loads('''${file}''')   json 
    Log To Console          ${qa["REQUEST_ID"]}

Json file looks something like:

[
    {
        "REQUEST_ID" : 10513
    },
    {
        "REQUEST_ID" : 48156
    },
    {
        "REQUEST_ID" : 455131
    }
]

So basically I want to get the "REQUEST_ID" value and type that in a text field.

Upvotes: 1

Views: 1913

Answers (1)

Todor Minakov
Todor Minakov

Reputation: 20067

Look at the structure of your json - it's a list of dictionaries; so you have to first specify which list member you want, and then its REQUEST_ID field:

Log To Console          ${qa[0]["REQUEST_ID"]

# print the value from all present dictionaries in the list:
FOR    ${member}    IN    @{qa}
    Log To Console          ${member["REQUEST_ID"]
END

Upvotes: 3

Related Questions