2015-09-04 30 views
0

我正在使用谷歌應用程序引擎(v1.9.24)與瓶(v0.10.1)和python(v2.7.5)。ValueError(「沒有JSON對象可以解碼」)Python谷歌地圖

我試圖讓googlemaps(v2.2)API與我的應用程序一起工作。

我知道返回的JSON格式不正確,但我不明白爲什麼。

我的代碼如下:

import googlemaps 
gmaps = googlemaps.Client(key='API_KEY') 
geocode_result = gmaps.geocode('6b, oko awo, victoria island, lagos') 
return geocode_result 

這工作完全,但返回一個錯誤格式的JSON字符串(我運行我的本地計算機上的相同的代碼證實了這一點)。我使用JSON validator驗證它返回的JSON。由於JSON格式錯誤,我的燒瓶應用程序崩潰,並給我一個ValueError。 我不知道這個方法,我會很感激任何幫助。

回答

0

問題不在於JSON。其實,

gmaps.geocode('6b, oko awo, victoria island, lagos') 

不返回JSON可言,它返回包含「結果」的值作爲the google docs記錄,因爲你可以在Google地圖庫的源代碼見here列表。

實際返回的是填充數據的列表對象。該列表中的所有字符串值都是unicode字符串。這意味着它們看起來像u'hello'而不是簡單的"hello"(注意雙引號),json.loads()期望的(我假設你是如何加載JSON的)。

這可能意味着您嘗試解決不存在的問題的問題。您不必加載JSON,因爲它已經是一個Python列表對象。

您可以通過執行

json.loads(json.dumps(geocode_result)) 

它工作正常確認,這意味着有與JSON結構沒有問題。

+0

感謝您的提示。當我從python控制檯運行代碼時,它看起來工作得很好,但是當我從開發服務器運行它的時候它不起作用(那是它給出ValueError的時候)。 – Raymond

+0

需要更多信息。比如你還在嘗試使用json驗證器。顯示錯誤所在的代碼。 –

相關問題