Как получить вывод в таблицу с заголовком?

Это мой результат 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 отсутствует. Не могу импортировать модуль.

Чтобы создать из него таблицу, я предлагаю вам использовать панды, потому что ЭТО НАМНОГО ПРОЩЕ !!!

U11-Forward 09.06.2018 12:21

@ U8-Forward Я пробовал, но не смог получить distance = pd.DataFrame.from_dict (matrixDistance ['rows'] [0] ['elements'] ‌ [0] ['distance'] ['val‌ ue' ])

user3664111 09.06.2018 12:31

IMO, если вы не можете import csv, похоже, что ваша установка Python испорчена - и было бы очень полезно исправить это, потому что кто знает, какие еще проблемы это может вызвать.

martineau 09.06.2018 14:23
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
3
45
1

Ответы 1

Вот мой подход к этой проблеме. Вы можете найти множество подходов через разные библиотеки.

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?

user3664111 09.06.2018 12:32

да, конечно, вы можете импортировать библиотеку CSV, тогда вы можете все, что захотите.

Lasith Niroshan 09.06.2018 15:38

Другие вопросы по теме