KeyError:Python中的0

时间:2017-04-14 14:10:43

标签: python json

我试图获取此JSON中返回的第一个对象directionstation的值,但我收到以下错误

  

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>

1 个答案:

答案 0 :(得分:4)

您的JSON被解码为“对象”(在python中称为dict),它不是数组。因此,它没有特别的“秩序”。您认为“第一”元素实际上可能不会以这种方式存储。不能保证每次都会出现相同的对象。

但是,您可以尝试使用dict {和OrderedDict的{​​{1}}参数将这些object_pairs_hook转换为json.loads s 。 json.load就像OrderedDict,但它会记住订单元素已插入其中。

dict

(这个答案归功于https://stackoverflow.com/a/6921760https://stackoverflow.com/a/21067850