2015-11-30 40 views
0

我是新來的Python,並試圖解析出列表中的郵政編碼(使用Google地圖包)並且正在運行到一個KeyError。Keyerror嘗試從谷歌拉取郵政編碼反向地理編碼

import googlemaps 
gmaps = googlemaps.Client('my_api_key') 
reverse_geocode_result = gmaps.reverse_geocode((lat,lng)) 
address = reverse_geocode_result 
x=address[0][0] 
print(len(x)) 

錯誤消息 回溯(最近最後調用): 文件 「Gmaps2.py」,第10行,在 X =地址[0] [0] KeyError異常:0

+0

'x = address [0] [0]'line之前'address'的值是多少? – Andy

回答

0

地址[ 0]應該是一個字典對象 - 您可以使用鍵訪問其內容,而不是使用數字索引(這是您爲列表執行的操作)。

>>> address[0].keys() 
[u'geometry', u'address_components', u'place_id', u'formatted_address', u'types'] 

>>> address[0]['address_components'][8]['long_name'] 
u'90005' 
+0

非常感謝!這解決了我的問題。有沒有辦法找出哪些是列表,哪些是字典。在這種情況下,地址[0] ['address_components'] [6] .keys()在address [0] ['address_components'] .keys()'沒有。 – avogadro

+0

@avogadro - 'type(object_name)'會告訴你一個對象的類型。 address [0] ['address_components'] [6]引用列表中的第六個對象,而不是列表本身;該對象大概是一個字典,所以你可以得到它的鑰匙。在對python有更多的經驗之後,你會得到它的竅門,特別是對於列表和字典。 – Boa

相關問題