![](/img/trans.png)
[英]Python throws KeyError: 1 when using a Dictionary restored from a file
[英]When I try to read a JSON data from a file (exported from xlsx) in python, it throws KeyError
我有.xlsx 文件,并将其转换为 JSON。 我正在使用 python 从这个 json 文件中获取数据。 例如,我可以搜索 Build#,然后获得相应的级别,但是当我搜索例如“14H0232”或“14H4812”中的值时,它会引发 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()
'''
json 文件的片段。
'''
{
"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"
}
]
}
'''
问题出在你的循环中。 当您尝试访问“14H0232”的值时,它只是不存在于您的 json 文件中。 我认为“Build#”的情况不同,因为钥匙总是在那里。 您共享的示例也没有显示 F6 具有您指定的 id 的密钥。 因此,为了避免这种错误,您可以将“if”语句放在 try 块中并捕获错误。
try:
if i['14H0232'] == input:
print(i['LEVEL'])
except KeyError:
print("The key is not found but the code continues to execute")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.