How to extract specific value from json data that is now a dictionary


I am working on a tool to download a list of open cases from my corporate CRM tool. I have the code to pull them down and into a file. The format of the file is:

"result": [
         "priority":"3 - Moderate",
         "product":"My Product",
         "opened_at":"23/07/2020 11:10:08",
      "<more cases>"

I want to extract all values for the key "number".

I tried to follow some of the suggestions given when you type in the subject of the post. This one seemed close: How to extract specific data from JSON?

But did not work.

Here is the code:

    import json
    print("Started Reading JSON file")
    with open("sn_data.json", "r", encoding='utf-8') as read_file:
    print("Converting JSON encoded data into Python dictionary")
    developer = json.load(read_file)


This throws: print(developer['result']['number']) TypeError: list indices must be integers or slices, not str

I have confirmed that I have a dictionary using print(type(developer)).

If I comment out the print above and use:

    for number in developer.items():

I get: print(developer.items["number"]) TypeError: 'builtin_function_or_method' object is not subscriptable

I look up the errors and find no real answers. As I am not a full time Python developer, just support guy trying to help out.


The value for "result" key in your dictionary is a list, so you can't index into it with ['number']. 'number' is a key in a dictionary in that list.

result: [{}.{}...]

So you have to iterate over it. Each item in that list is a dict, so you can then iterate into it with ['result']

for result in developer['result']:

In your second block of code you store a value in a variable called number, but then you use a string "number" to access it. That is not the same thing just FYI. Still, dict.items() will return a list and you cant access it like a dict either.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at


Login to comment