IndexError:超出范围课程设置的列表索引

时间:2018-10-24 10:18:24

标签: python list ide spyder index-error

我的python代码有问题。而且无论我尝试什么,错误module.exports = { devServer: { disableHostCheck: true }, // ... other options } 都会不断出现。谁能帮我一下。我在下面添加我的代码和错误消息。

INDEXERROR: LIST INDEX OUT OF RANGE

这是我的错误消息:

import urllib,json

# serviceurl = 'http://maps.googleapis.com/maps/api/geocode/json?'
serviceurl = 'http://python-data.dr-chuck.net/geojson?'

while True:
    address = input('Enter location: ')
    if len(address) < 1: break

    url = serviceurl + urllib.parse.urlencode({'sensor':'false', 'address': 
address})

    print ('Retrieving ',url)
    url_handle = urllib.request.urlopen(url)
    data = url_handle.read()

print ('Retrieved',len(data),'characters')
json_data = json.loads(data)

#print json.dumps(json_data['results'], indent=3)
print ('Place id',json_data['results'][0]['place_id'])

请帮助我。

1 个答案:

答案 0 :(得分:1)

如果您在Spyder的变量资源管理器中检查变量,您会清楚地看到json_data['results']是一个列表,或者只是打印它-

json_data['results']
Out[22]: []

因此,当您尝试通过json_data['results'][0]访问其第一个元素时,它会给您IndexError错误,因为它根本不存在。

修改:
我更深入地了解发生了什么事-
如果您输入正确的信息(例如“ UCLA”),则会得到一个带有results字段中数据的json。像这样的url,如果我输入UCLA作为输入,您的脚本会尝试访问。
但是,如果在对serviceurl的初始调用中没有输入,那么您会得到类似this的信息,如您所见,result中没有任何内容。领域。
您需要在代码中进行检查,以便正确处理此问题。