我试图获取此JSON中返回的第一个对象direction
和station
的值,但我收到以下错误
KeyError:0
这是我的代码:
print(json.dumps(savedrequest, indent=4))
savedstation = savedrequest[0]['station']
saveddirection = savedrequest[0]['direction']
这就是它在印刷品中的回归:
{
"-bas": {
"email_address": "dd3@gmail.com",
"direction": "Southbound",
"station": "place-har"
},
"-bus": {
"email_address": "dd4@gmail.com",
"direction": "Southbound",
"station": "place-su"
}
}
我不知道返回时-bas
或-bus
会是什么,我需要选择数组中的第一个对象。 < / p>
答案 0 :(得分:4)
您的JSON被解码为“对象”(在python中称为dict
),它不是数组。因此,它没有特别的“秩序”。您认为“第一”元素实际上可能不会以这种方式存储。不能保证每次都会出现相同的对象。
但是,您可以尝试使用dict
{和OrderedDict
的{{1}}参数将这些object_pairs_hook
转换为json.loads
s 。 json.load
就像OrderedDict
,但它会记住订单元素已插入其中。
dict
(这个答案归功于https://stackoverflow.com/a/6921760和https://stackoverflow.com/a/21067850)