我正在尝试此代码并在以lat,lng和location开头的行中获取错误。有人可以帮忙吗?
import urllib.parse
import urllib.request
import json
while True:
address = input('Enter location: ')
if len(address) < 1 : break
serviceurl = 'http://python-data.dr-chuck.net/geojson'
url = serviceurl + '?' + urllib.parse.urlencode({'sensor':'false', 'address': address})
response = urllib.request.urlopen(url)
data = response.readall().decode('utf-8')
js = json.loads(str(data))
if 'status' not in js or js['status'] != 'OK':
print ('==== Failure To Retrieve ====')
print (data)
continue
print (json.dumps(js, indent=4))
lat = js["results"][0]["geometry"]["location"]["lat"]
lng = js["results"][0]["geometry"]["location"]["lng"]
print('lat',lat) #,('lng'),lng
location = js['results'[0]]['formatted_address']
print(location)
谢谢, 阿伦
答案 0 :(得分:2)
错误NoneType object is not subscriptable
表示您尝试执行此操作:
None[something]
如果它出现在这一行:js["results"][0]["geometry"]["location"]["lat"]
,则表示js["results"][0]["geometry"]["location"]["lat"]
不存在,即该路径上的某些内容评估为无。
例如,如果js
为None
,则无法尝试评估None["results"]
。
或者,如果js["results"][0]
为None
,它将无法尝试执行None["geometry"]
等。
顺便说一句,js
很可能是None
,因为你确实有这个:
except: js = None