Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-从JSON响应中提取数据(使用TomTomAPI)_Python_Json_Dictionary_Tomtom - Fatal编程技术网

Python-从JSON响应中提取数据(使用TomTomAPI)

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

我正在尝试使用

通过提供API url、API键()以及源和目标纬度/经度,我希望返回旅行时间

我以为我从响应中得到了一个字典字典,应该能够使用-jsontomString['routes']['summary']['traveltimeinsectonds'访问数据

但是我得到了

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”,“版权所有”:“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']