Python json密钥错误

时间:2016-08-28 10:30:22

标签: python json

因此,我使用以下简单代码段代码导入JSON对象,然后将特定字段提取到列表中。这是:

<button id="1" data-section="1"></button>

function click(){
  $("#pag1").hide();
  $("#pag2").hide();
  $("#pag3").hide();
  $("#pag4").hide();

  $("#pag" + this.dataset.section).show();

  // this could be made more efficient by not hiding the relevant section but just showing it, but may not make much difference.
}

$("#1").click(click); $("#2").click(click); $("#3").click(click); $("#4").click(click);

该URL是对iNaturalist #Set Observations URL request for all observations within the Osa Pennisula, Costa Rica query = urllib2.urlopen("http://api.inaturalist.org/v1/observations?nelat=8.60586&nelng=-83.44410&swlat=8.43066&swlng=-83.74073&per_page=1000&order=desc&order_by=created_at") obSet = json.load(query) #Find all common names for observations for item in obSet['results']: print item['taxon']['preferred_common_name'] 服务的调用。当我拨打电话时,我得到以下结果:

node.js

所以它很奇怪 - 我知道响应有304个结果,但代码似乎打印出来然后爆炸。为什么是这样?!

1 个答案:

答案 0 :(得分:2)

因为并非obSet['results']中的每个项目都有密钥item['taxon']['preferred_common_name']

您可以通过捕获这些KeyError并打印令人反感的密钥来抵消这种情况。似乎某些项目None的值为'taxon',因此您可能也希望捕获这些内容:

for item in obSet['results']:
     try:
          print item['taxon']['preferred_common_name']
     except (KeyError, TypeError):
          print item