首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python -从JSON响应中提取数据(使用TomTom api)

Python -从JSON响应中提取数据(使用TomTom api)
EN

Stack Overflow用户
提问于 2018-01-08 17:19:33
回答 1查看 2.6K关注 0票数 1

我正在尝试使用TomTom API检索有关路由时间的信息。

通过提供API url、API键(你可以通过注册)以及源和目的地纬度/经度,我想返回旅行时间。

我认为我从响应中得到了字典,并且应该能够使用-jsonTomTomString‘data’travelTimeInSeconds‘访问数据。

但我要..。

TypeError:列表索引必须是整数,而不是str

我的代码如下:

代码语言:javascript
复制
#!/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国际BV的专有版权,只能根据TomTom国际BV或授权经销商与您之间签订的完全执行许可协议的条款使用。如果您还没有签订这样的许可协议,您就没有被授权以任何方式使用该数据,并且应该立即将其返回给TomTom International BV。“隐私”:“TomTom保存的信息告诉我们您如何以及何时使用我们的服务。”这包括有关您正在使用的设备的信息和我们在使用该服务时接收到的信息,例如位置、路由、目的地和搜索查询。TomTom无法根据它收集的信息识别您,也不会尝试。TomTom使用这些信息进行技术诊断,检测欺诈和滥用,创建使用情况报告,并改进其服务。这些资料只为这些目的而保存,并在一段有限的时间内予以销毁。TomTom应用基于行业标准的安全方法来保护信息免受未经授权的访问。TomTom将不允许任何其他人访问或将其用于任何其他目的,除非在适当的法律程序之后明确和合法地命令这样做。您可以在http://tomtom.com/privacy了解更多信息。“,"routes":[{"summary":{"lengthInMeters":326856,”travelTimeInSeconds:13018,"trafficDelayInSeconds":818,departureTime:“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},

感谢你帮我把这事办好了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-08 17:29:59

我在"routes":之后看到了一个"routes":,所以路由是一个数组。

试试jsonTomTomString['routes'][0]['summary']['totalTimeSeconds']

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48155038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档