Это мой результат Google Maps API Matrix Distance:
{
'destination_addresses': 3 locations
'origin_addresses': one static location
'rows': [{
'elements': [{
'distance': {'text': '0.5 km', 'value': 532},
'duration': {'text': '8 mins', 'value': 452},
'status': 'OK'}, {
'distance': {'text': '0.7 km', 'value': 682},
'duration': {'text': '9 mins', 'value': 561},
'status': 'OK'}, {
'distance': {'text': '0.6 km', 'value': 646},
'duration': {'text': '9 mins', 'value': 539},
'status': 'OK'
}]
}],
'status': 'OK'
}
Я написал это, чтобы извлечь «ценность» для каждого элемента расстояния и продолжительности.
matrixDistance = gmaps.distance_matrix(origin, destinations, mode = "walking")
split = matrixDistance['rows'][0]['elements']
for a in split:
distance = a['distance']['value']
duration = a['duration']['value']
print(distance, duration)
Мой вопрос в том, как мне распечатать результат в таблице и с таким заголовком (я могу извлечь результат и немного не понимаю, как получить часть заголовка):
Distance Duration
532 452
682 561
646 539
** Я думаю, что могу сразу получить значение, написав код, как показано ниже, но я продолжал получать ошибки. Итак, я разделил на две части, как показано выше:
for a in matrixDistance:
distance = a['rows'][0]['elements'][0]['distance']['value']
duration = a['rows'][0]['elements'][0]['duration']['value']
print(distance, duration)
TypeError: string indices must be integers
Было бы неплохо, если бы я мог немного почистить код, но пока разделенная часть хороша, но я не могу получить результат в таблице с заголовком. Кто-нибудь может мне в этом помочь? Спасибо!
*** Я тоже не знаю почему, но мой модуль csv отсутствует. Не могу импортировать модуль.
@ U8-Forward Я пробовал, но не смог получить distance = pd.DataFrame.from_dict (matrixDistance ['rows'] [0] ['elements'] [0] ['distance'] ['val ue' ])
IMO, если вы не можете import csv, похоже, что ваша установка Python испорчена - и было бы очень полезно исправить это, потому что кто знает, какие еще проблемы это может вызвать.






Вот мой подход к этой проблеме. Вы можете найти множество подходов через разные библиотеки.
matrixDistance = gmaps.distance_matrix(origin, destinations, mode = "walking")
split = matrixDistance['rows'][0]['elements']
print("Distance \t Duration")
for a in split:
distance = a['distance']['value']
duration = a['duration']['value']
print("{} \t\t {}".format(distance ,duration))
Спасибо @Lasith Niroshan. Оттуда можно ли сохранить и то, и другое в CSV?
да, конечно, вы можете импортировать библиотеку CSV, тогда вы можете все, что захотите.
Чтобы создать из него таблицу, я предлагаю вам использовать панды, потому что ЭТО НАМНОГО ПРОЩЕ !!!