如何从python中的字典中提取特定值

时间:2015-11-28 10:34:47

标签: python dictionary

我想从Python中提取谷歌距离矩阵API的距离。它返回的objet是一个python字典。

{
    'destination_addresses': [Mumbai, Maharashtra, India '],
        'origin_addresses': ['Powai, Mumbai, Maharashtra, India'],
        'rows': [{
            'elements': [{
                'distance': {
                    'text': u '47.1 km',
                    'value': 47086
                },
                'duration': {
                    'text': '1 hour 17 mins',
                    'value': 4628
                },
                'status': 'OK'
            }]
        }],
        'status': 'OK'
    }

我想从上面提取距离和持续时间。我用过

distance = my_distance["rows"]
for a in distance:
    result = a["elements"]
    print result

它给了我

[{
    u 'duration': {
        u 'text': u '1 hour 17 mins', u 'value': 4628
    }, u 'distance': {
        u 'text': u '47.1 km', u 'value': 47086
    }, u 'status': u 'OK'
}]

现在如何提取持续时间(1小时17分钟)和距离(47.1公里)及其相应的值(4628& 47086)

2 个答案:

答案 0 :(得分:1)

你可以这样做:

print "time taken : ", d["rows"][0]["elements"][0]["duration"]["text"]
print "distance : ", d["rows"][0]["elements"][0]["distance"]["text"]
print "distance value : ", d["rows"][0]["elements"][0]["distance"]["value"]
print "duration value : ", d["rows"][0]["elements"][0]["duration"]["value"]

答案 1 :(得分:0)

a["elements"]包含字典列表。您可以迭代它或通过索引值获取值。您可以在for循环中尝试此操作:

distance = result[0]['text']
duration = result[1]['text']