Python - извлечение данных из ответа JSON (с использованием TomTom API)
Я пытаюсь получить информацию о времени прохождения маршрута, используя TomTom API.
Предоставляя URL-адрес API, ключ API ( который вы можете получить, зарегистрировавшись) и широту / долготу источника и пункта назначения, я хочу вернуть время в пути.
Я думал, что я получаю словарь словарей из ответа и должен иметь возможность доступа к данным, используя - jsonTomTomString['route']['summary']['travelTimeInSeconds']
но я получаю...
TypeError: индексы списка должны быть целыми числами, а не str
Мой код выглядит следующим образом:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import ConfigParser
import requests
import json
import sys
import time
import datetime
from urllib import urlopen
# URL to the tomtom api
apiURL = "https://api.tomtom.com/routing/1/calculateRoute/"
# apiKey
apiKey = "get this from link in description"
#[coordinates]
sourceLat = 51.5560241
sourceLon = -0.2817075
destLat = 53.4630621
destLon = -2.2935288
tomtomURL = "%s/%s,%s:%s,%s/json?key=%s" % (apiURL,sourceLat,sourceLon,destLat,destLon,apiKey)
getData = urlopen(tomtomURL).read()
jsonTomTomString = json.loads(getData)
totalTime = jsonTomTomString['routes']['summary']['totalTimeSeconds']
print ("time to destination is: ", totalTime)
Ответ JSON выглядит следующим образом...
{"formatVersion": "0.0.12", "copyright": "Авторские права TomTom International BV, 2018 г. Все права защищены. Эти навигационные данные являются собственностью TomTom International BV и могут использоваться только в соответствии с условиями полностью заключенное лицензионное соглашение, заключенное между TomTom International BV или авторизованным торговым посредником и вами. Если вы не заключили такое лицензионное соглашение, вы не уполномочены каким-либо образом использовать эти данные и должны немедленно вернуть его в TomTom International BV.","конфиденциальность": "TomTom хранит информацию, которая сообщает нам, как и когда вы используете наши услуги. Сюда входит информация об устройстве, которое вы используете, и информация, которую мы получаем во время использования вами службы, например местоположения, маршруты, пункты назначения и поисковые запросы. TomTom не может идентифицировать вас на основе собираемой информации и не будет пытаться сделать это. TomTom использует эту информацию для технической диагностики, выявления мошенничества и злоупотреблений, создания отчетов об использовании и улучшения своих данных. ervices. Информация хранится только для этих целей и в течение ограниченного периода времени, после которого она уничтожается. TomTom применяет методы безопасности, основанные на отраслевых стандартах, для защиты информации от несанкционированного доступа. TomTom не будет предоставлять кому-либо еще доступ к информации или использовать ее для каких-либо иных целей, если иное прямо и законно не предписано сделать это в соответствии с надлежащей правовой процедурой. Вы можете узнать больше на http://tomtom.com/privacy. Вы можете связаться с TomTom, перейдя по http://tomtom.com/support. "," Route ":[{"summary":{"lengthInMeters":326856,"travelTimeInSeconds":13018,"trafficDelayInSeconds":818," flightTime":"2018-01-08T17:10:31Z" "ArrivalTime":"2018-01-08T20:47:28Z"},"ножки": [{ "Резюме":{"lengthInMeters":326856,"travelTimeInSeconds":13018,"trafficDelayInSeconds":818,"departureTime":"2018-01-08T17:10:31Z" "ArrivalTime":"2018-01-08T20:47:28Z"},"точки": [{" широта ": 51,55598," долгота ":-0,28216},{" широта ": 51,55601," долгота ":-0,28292},{" широта ": 51,55602," долгота ":-0,28384},{" широта ": 51,55602, "долгота":-0,28395},{"широта": 51,55602, "долгота":-0,28442},{"широта": 51,55603,"долгота":-0,28493},{"широта": 51,55603,"долгота":-0,28564},{"широта": 51,55603,"долгота":-0,28611},
Благодарен за помощь в получении этого к работе.
1 ответ
Я вижу [
после "routes":
, так что маршруты это массив.
Пытаться jsonTomTomString['routes'][0]['summary']['totalTimeSeconds']