Я использую геокодер mapbox для поиска широты и долготы по zip-кодам. Проблема в том, что иногда она работает просто отлично, а иногда просто не работает. Когда она не работает, она возвращает 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 из-за этой внутренней ошибки сервера)