2016-08-02 76 views
-6

JSON下面如何解析Python中的这个JSON?

{"result":[ 
    { 
     "spawn_point_id":"89", 
     "encounter_id":"1421", 
     "expiration_timestamp_ms":"1470105387836", 
     "latitude":38.22, 
     "longitude": -91.27 
    }, 
    { 
     "distance_in_meters":10, 
     "encounter_id":"9677" 
    }, 
    { 
     "distance_in_meters":10, 
     "encounter_id":"1421" 
    }, 
    { 
     "spawn_point_id":"11", 
     "encounter_id":"2142", 
     "expiration_timestamp_ms":"1470105387444", 
     "latitude":38.00, 
     "longitude": -91.00 
    } 
]} 

,我想输出看起来像

spawn 89 at lat 38.22 long -91.27 
spawn 11 at lat 38.00 long -91.00 

我用json.loads,它实际上使得JSON看起来时髦。

代码,以便下面远:

c = json.loads(r.content) 
for d in c['result']: 
    if d['latitude'] is not None: 
     print(str(d['latitude'])) 

似乎样的工作,但然后得到错误

Traceback (most recent call last): 
File "fast0.py", line 11, in <module> 
if d['latitude'] is not None: 
KeyError: 'latitude' 
+1

python中有一个'json'模块。它会加载一个'dict'类型的对象,就像Java中的HashMap一样。阅读文档应该会让你感觉很好。 –

+0

通过时髦我的意思是它添加一个u'所有键和值的前缀 –

+0

尝试'd.get('纬度')'而不是'['纬度']''。 –

回答

0

您正在寻找不存在的关键。尝试:

c = json.loads(r.content) 
for d in c['result']: 
    if 'latitude' in d: 
     print(str(d['latitude']))