Я пытаюсь использовать синтаксис, который я узнал здесь, в новом приложении. Я получаю сообщение об ошибке при попытке проанализировать результаты. Я считаю, что я-то недоразумение об этом ответ JSON, так как тот же синтаксис, отлично работает на других приложенияхParsing JSON error
Типичный ответ таков -
outputs =
[[{u'results': [{u'address_components': [{u'long_name': u'Arumeru',
u'short_name': u'Arumeru',
u'types': [u'administrative_area_level_2',
u'political']},
{u'long_name': u'Arusha',
u'short_name': u'Arusha',
u'types': [u'administrative_area_level_1',
u'political']},
{u'long_name': u'Tanzania',
u'short_name': u'TZ',
u'types': [u'country',
u'political']}],
u'formatted_address': u'Arumeru, Tanzania',
u'geometry': {u'bounds': {u'northeast': {u'lat': -2.9567556,
u'lng': 37.0479585},
u'southwest': {u'lat': -3.7703911,
u'lng': 36.541356}},
u'location': {u'lat': -3.2923144,
u'lng': 36.8250274},
u'location_type': u'APPROXIMATE',
u'viewport': {u'northeast': {u'lat': -2.9567556,
u'lng': 37.0479585},
u'southwest': {u'lat': -3.7703911,
u'lng': 36.541356}}},
u'types': [u'administrative_area_level_2', u'political']}],
u'status': u'OK'}]]
output = open('geocoding_results_Tanzania.csv', 'w+')
writer = csv.DictWriter(output, delimiter=',', fieldnames=['location_lat', 'location_lng'])
writer.writeheader()
pprint([results])
for results in outputs[0]["results"][0]["geometry"]["location"]:
params = {
'location_lat': results['lat'],
'location_lng': results['lng'],
}
writer.writerow(params)
Ошибка -
location_lat': results['lat'],
TypeError: string indices must be integers
Однако, когда я как в соответствии с рекомендациями @Padraic
lat = outputs[0]["results"][0]["geometry"]["location"]['lat']
lng = outputs[0]["results"][0]["geometry"]["location"]['lng']
print(lat,lng)
Я получаю правильные значения.
(-3.2923144, 36.8250274)
Что я делаю неправильно при повторении результатов?
Пожалуйста, покажите код, где ошибка происходит на самом деле. – poke
Покажите, как именно вы получаете ответ.Похоже, вы не расшифровали строку JSON для объектов Python. –
Спасибо за ответы. Ах, так я должен использовать json.dumps? – LearningSlowly