dir = {"sample":[
{ "key1":"data1" }
,
{ "key1":"data2" }
,
{ "key2":"data3" }
,
{ "key2":"data4" }
]
}
使用我的代码:
listKey1 = []
listKey2 = []
with open(dir) as json_file:
data = json.load(json_file)
for p in data['sample']:
key1data = p['key1']
print("key1: " + key1data)
listKey1.append(key1data)
key2data = p['key2']
print("key2: " + key2data)
listKey2.append(key2data)
我试图将key1和key2键下的数据存储到listKey1和listKey2中,但我得到了错误:
KeyError: 'key1'
KeyError: 'key2'
正如我们在我的文件中看到的,key1和key2都存在
您可以迭代元素,通过
key
进行比较,并相应地存储数据:输出:
这是修改后的代码。在使用之前,只需检查密钥是否存在
这是我得到的输出
下面是发生密钥错误的原因。请注意,根据索引有不同的键
循环p值时不总是有
key1
或key2
的问题。它要么有一个,要么有另一个因此,当它找到
key1
时,它会打印数据,但会为key2
给出一个错误。 当它找到key2
时,它会打印数据,但会为key1
给出一个错误一个好的选择是使用
get()
方法。如果键存在,它将返回值,否则它将给出默认值请尝试下面的代码
相关问题 更多 >
编程相关推荐