Python-从JSON响应中提取数据(使用TomTomAPI)
我正在尝试使用 通过提供API url、API键()以及源和目标纬度/经度,我希望返回旅行时间 我以为我从响应中得到了一个字典字典,应该能够使用-jsontomString['routes']['summary']['traveltimeinsectonds'访问数据 但是我得到了 TypeError:列表索引必须是整数,而不是str 我的代码如下:Python-从JSON响应中提取数据(使用TomTomAPI),python,json,dictionary,tomtom,Python,Json,Dictionary,Tomtom,我正在尝试使用 通过提供API url、API键()以及源和目标纬度/经度,我希望返回旅行时间 我以为我从响应中得到了一个字典字典,应该能够使用-jsontomString['routes']['summary']['traveltimeinsectonds'访问数据 但是我得到了 TypeError:列表索引必须是整数,而不是str 我的代码如下: #!/usr/bin/python # -*- coding: utf-8 -*- import ConfigParser import req
#!/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”,“版权所有”:“2018 TomTom版权所有”
国际BV。保留所有权利。此导航数据为
TomTom International BV的专有版权,仅可使用
根据完全执行的许可协议的条款
TomTom International BV或授权
经销商和您自己。如果您尚未签署此类许可证
同意您无权以任何方式使用此数据,以及
应立即将其退还给TomTom International
BV.,“隐私”:“TomTom保存的信息告诉我们如何以及何时使用
您使用我们的服务。这包括有关您使用的设备的信息
以及您使用服务时我们收到的信息,
例如位置、路线、目的地和搜索查询
无法根据其收集的信息识别您,并且将
不要尝试。TomTom将信息用于技术诊断,以
检测欺诈和滥用,创建使用情况报告,并改进其性能
服务。该信息仅为这些目的和特定目的而保存
有限的时间段,在此之后它将被销毁。TomTom申请
基于行业标准的安全方法,以保护
禁止未经授权访问的信息。TomTom不会给任何人
以其他方式访问信息或将其用于任何其他目的,除非
根据正当法律程序明确且合法地被命令这样做。
您可以在找到更多信息。您可以联系
汤姆:我去看汤姆
,路线:“{”摘要:“{”长度表:326856,“旅行时间不安全”:13018,“交通延迟不安全”:818,“出发时间”:“2018-01-08T17:10:31Z”,“到达时间”:“2018-01-08T20:47:28Z“,”腿部:“{”摘要:“{”长度表:326856,“旅行时间不安全”:13018,“交通延迟不安全”:818,“出发时间”:“2018-01-08T17:10:31Z”,“到达时间”:“2018-01-08T20:47:28Z”},“点”:[{“纬度”:51.55598,“经度”:-0.28216},{“纬度”:51.55601,“经度”:-0.28292},{“纬度”:51.55602,“经度”:-0.28384},{“纬度”:51.55602,“经度”:-0.28395},{“纬度”:51.55602 51.55602,“经度”:-0.28442},{“纬度”:51.55603“:51.55603,“经度”:-0.28611}
非常感谢您的帮助。我在“路由”之后看到了一个
[
:,因此路由是一个数组
试试
jsontomString['routes'][0]['summary']['totalTimeSeconds']
我在JSON中也看不到'totalTimeSeconds',除非它在截止之后的某个地方。所以它应该是jsontomString['routes'][0]['summary']['travelTimeInSeconds']