因此,我使用以下简单代码段代码导入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个结果,但代码似乎打印出来然后爆炸。为什么是这样?!
答案 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