【发布时间】:2018-10-31 09:30:18
【问题描述】:
我正在使用 mapbox 地理编码器从邮政编码中查找纬度和经度。问题是它有时工作得很好,有时根本不起作用。当它不起作用时,它返回 index error out of bounds,但在我的终端还显示internal server error。这种情况能做什么呢?
我的代码如下:
def get_context_data(self, **kwargs):
context = super(SingleCenterDetailView, self).get_context_data(**kwargs)
zip_code = self.object.center.zip_code
geocoder = Geocoder(access_token=mapbox_access_token)
response = geocoder.forward(str(zip_code))
response = response.geojson()['features'][0]
resp = response.get('center')
geo = [resp[0],resp[1]]
context['geo'] = geo
return context
问题出在response = response.geojson()['features'][0] 行,因为当它运行良好时,当我打印这一行时,它会显示像这样的dict
{'text': '53-334', 'context': [{'text': 'Wrocław', 'wikidata': 'Q1799', 'id': 'place.8365052709251970'}, {'short_code': 'PL-DS', 'text': 'Dolnośląskie', 'wikidata': 'Q54150', 'id': 'region.25860'}, {'short_code': 'pl', 'text': 'Poland', 'wikidata': 'Q36', 'id': 'country.340'}], 'geometry': {'coordinates': [17.026519, 51.096412], 'type': 'Point'}, 'center': [17.026519, 51.096412], 'type': 'Feature', 'relevance': 1, 'bbox': [17.024936, 51.095263, 17.028411, 51.09752], 'place_name': '53-334, Wrocław, Dolnośląskie, Poland', 'place_type': ['postcode'], 'properties': {}, 'id': 'postcode.5334805015388220'}
当它不工作时,它什么也不打印(这就是这个索引错误)
所以我的问题是,有什么办法可以解决这个问题吗?我的意思是,如果这有时有效,有时无效,那么它可能意味着对于某些邮政编码 找不到纬度和经度,但也许有一些解决方法?或者问题可能更小,我只是做错了什么? (我什至可以想象这是由于内部服务器错误导致的一些 Django 问题)
【问题讨论】:
标签: python django mapbox geocoding