检索特定字典值 - Python

时间:2016-10-28 21:00:28

标签: python dictionary

很抱歉,这是一个非常新手的问题。我目前有以下代码

import googlemaps
import json as js
from datetime import datetime

gmaps = googlemaps.Client(key=googleapikey)
my_distance = gmaps.distance_matrix('350 5th Ave, New York, NY 10118',
                                '4 Pennsylvania Plaza, New York, NY 10001')
print(my_distance)

打印输出如下

  

{'状态':'确定','行':[{'元素':[{'距离&# 39;:{'价值':876,'文字':' 0.9 km'},'期限':{'价值& #39;:324,'文字':' 5分钟'},'状态':'确定'}]}],&# 39; destination_addresses':[' 4 Pennsylvania Plaza,New York,NY 10001,USA'],' origin_addresses':[' 350 5th Ave,New York,NY 10118,美国']}

我最终想要提取0.9km的结果。我该怎么做?

我尝试过使用

print(my_distance['rows']) 

那只能给我

  

[{'元素':[{'状态':'确定','距离':{'值&# 39;:876,'文字':' 0.9 km'},'持续时间':{'价值':324,'文字':' 5分钟'}}]}]

print(my_distance['rows']['elements']['distance'])

然后我收到错误

  

TypeError:list indices必须是整数或切片,而不是str

任何帮助都将非常感谢!

2 个答案:

答案 0 :(得分:0)

elementsrows是字典列表,而不是字典本身。像这样访问它们:

print(my_distance['rows'][0]['elements'][0]['distance'])

答案 1 :(得分:0)

>>> mydict = {'status': 'OK', 'rows': [{'elements': [{'distance': {'value': 876, 'text': '0.9 km'}, 'duration': {'value': 324, 'text': '5 mins'}, 'status': 'OK'}]}], 'destination_addresses': ['4 Pennsylvania Plaza, New York, NY 10001, USA'], 'origin_addresses': ['350 5th Ave, New York, NY 10118, USA']}
>>> mydict['rows'][0]['elements'][0]['distance']['text']
    '0.9 km'

字典是{key:value},python中的列表是[elementA, elmentB],因此对于dict2 = {key:[{key:value}]},您必须使用dict2 [' key'] [0]来获取内部{key:value}