我试图从googlemaps查询中选择距离。数据似乎是通过字典返回的。但是,我无法获得我需要的信息。在
我在看什么
{'copyrights': 'Map data ©2017 Google', 'warnings': [], 'summary': 'NJ Tpke
S and I-95 S', 'legs': [{'traffic_speed_entry': [], 'distance': {'value':
365542, 'text': '227 mi'},
我要的是“227英里”。在
下面是我所尝试的
^{pr2}$我也尝试了这些参考资料中的方法:
accessing-elements-of-python-dictionary和 inverse-dictionary-lookup-in-python
我还引进了熊猫,纽比,试着把它切成片。在
以下是创建字典的代码:
>>> import googlemaps
>>> from datetime import datetime
>>> gmaps = googlemaps.Client(key='APIKEY')
>>> start = '07042'
>>> end = '20024'
>>> dirs = gmaps.directions(start, end)
谷歌在归还字典时会做些有趣的事情吗?在
你要找的里程应该在
请注意,您在一个包含另一个字典的字典中有一个列表(在
legs
)中!在根据评论进行编辑:
你只是有点随叫随到。另请参阅上面接受的答案。注意,
list
是按位置索引的,例如,legs[0]
表示legs
(tutorial on lists)中的第一项。这一项碰巧是一本字典(它可能是任何东西,真的)。这个字典不同于列表,可以通过它的键来访问,正如上面所做的(tutorial on dicts)。这里,我们需要存储在键distance
下的内容。或者,我们可以把钥匙traffic_speed_entry
拔出。在注意,在Python中,列表由}和{}表示。列表是事物的列表(例如
[
和]
表示,字典由{[1,'aaa']
),而字典将键与值相关联(例如{key1:1, key2:'aaa'}
)。试着读你的例子。在你可以这样组合你的例子:
dirs
大概是一个列表;我们使用[0]
来提取它的第一项。这个条目是一个字典(我们知道这是因为在您发布的示例中它位于
{
中。我们通过调用['legs']
来提取与键legs
相关联的值。这个值正好是一个列表。就像上面一样,我们通过
[0]
访问该列表中的第一项。等等。dirs[0]['legs'][0]['distance']['text']
应该可以。在这意味着,从
dirs[0]
中的dict
,选择键为'legs'
的元素,这是一个列表。在提取该
list
的第零个元素,并从该元素中找到键'distance'
(它是dict
)。在在最后一个元素中找到
'text'
,并返回相应的字符串。在请注意:您试图访问
traffic_speed_entry
,它不包含您想要的信息。在“traffic_speed_entry”在“legs”字段,而不是“summary”。让我们尝试一下,一次一个下标:
我假设这就是你在第一个代码框中发布的条目。在
^{pr2}$正如您已经注意到的,这是字符串'NJ Tpke S and I-95 S'。在
这是字符串开头的字母“N”。在
这相当于
您正在尝试将一个字符串与另一个字符串建立索引。在
解决方案
你需要正确地访问这个字段。在
我建议您尝试一次添加一个元素,检查是否达到了预期的效果:
相关问题 更多 >
编程相关推荐