Home > Mobile >  When I try to read a JSON data from a file (exported from xlsx) in python, it throws KeyError
When I try to read a JSON data from a file (exported from xlsx) in python, it throws KeyError

Time:01-05

I had .xlsx file, and I converted it to JSON. I am using python to get the data from this json file. I am able for example to search for Build# and then I get the corresponding level, but when I search for values in, for example, "14H0232" or "14H4812" it throws a KeyError.

'''
import json
 
f = open('try.json')
 

data = json.load(f)

input= input('Enter the value: ')
for i in data['F6']:
    if i['14H0232'] == input:
        print(i['LEVEL'])  
f.close()
'''

A Snippet of the json file.

''' 
{
    "F6": [
        {
            "LEVEL": "2.0.6.0",
            "ID": "dataID",
            "Build#": "9",
            "prod/dev": "prod ",
            "14H4812": "data1\r\ndata2",
            "14H4826": "data",
            "14H4813": "data1\r\ndata2"
        }  
    ],
    "F5": [
        {
            "LEVEL": "2.0.5.1",
            "ID": "dataID",
            "Build#": "18",
            "prod/dev": "prod",
            "14H0232": "data1: data1\r\ndata2: data2\r\ndata3: data3",
            "14H12321": "data1\r\ndata2"
        }
    ],
    "F4": [
        {
            "LEVEL": "2.0.4.1",
            "ID": "dataID",
            "Build#": "18",
            "prod/dev": "prod",
            "14H0232": "data1: data1\r\ndata2: data2\r\ndata3: data3",
            "14H12321": "data1\r\ndata2" 
        } 
    ]
}

'''

CodePudding user response:

The problem is in your loop. When you are trying to access the value for "14H0232" it just doesnt exist in your json file. The case for 'Build#' is different I assume, as the key is always there. The example you shared is also not showing that F6 has a key with that id you specified. So to avoid this kind of errors you can put your 'if' statement in a try block and catch the error.

 try: 
        if i['14H0232'] == input:
            print(i['LEVEL']) 
 except KeyError:
        print("The key is not found but the code continues to execute")
  •  Tags:  
  • Related