我正在使用带有烧瓶(v0.10.1)和python(v2.7.5)的Google应用引擎(v1.9.24)。
我试图让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 :(得分:0)
问题不在于JSON。实际上,
gmaps.geocode('6b, oko awo, victoria island, lagos')
根本不返回JSON,它会返回一个列表,其中包含the google docs中记录的“结果”值,因为您可以在googlemaps库的源代码中看到here。< / p>
实际返回的是填充数据的列表对象。此列表中的所有字符串值都是unicode字符串。这意味着它们看起来像u'hello'
而不是普通的"hello"
(注意双引号),json.loads()期望(我假设你正在尝试加载JSON)。
这可能意味着您正在尝试解决不存在的问题。您不必加载JSON,因为它已经是一个python列表对象。
您可以执行
确认json.loads(json.dumps(geocode_result))
它工作正常,这意味着JSON结构没有问题。