2016-08-02 78 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']))