【发布时间】:2016-04-07 00:08:33
【问题描述】:
我正在使用 google geocode API 测试以下 Python3.5 代码,但收到以下错误。
raise JSONDecodeError("Expecting value", s, err.value) from None >JSONDecodeError: Expecting value
代码如下:
import urllib
import json
serviceurl = 'http://maps.googleapis.com/maps/api/geocode/json?'
while True:
address = input('Enter location: ')
if len(address) < 1 : break
url = serviceurl + urllib.parse.urlencode({'sensor':'false',
'address': address})
print ('Retrieving', url)
uh = urllib.request.urlopen(url)
data = uh.read()
print ('Retrieved',len(data),'characters')
js = json.loads(str(data))
知道我为什么会出错。
【问题讨论】:
-
当您将具有
None、空白字符串或其他不兼容数据类型的变量传递到json.loads(...)时会产生此错误,请参阅:docs.python.org/3/library/json.html 如果您直接从文件加载 json,您应该使用myjson = json.load(open("yourjson.json", 'r'))在内存中生成python dict 数据类型。
标签: python json google-geocoding-api