我对python和编码相对较新,所以我真的需要帮助。这是我的代码,我将告诉你我正在尝试和失败的事情,以后再引用:
>>> import json
>>> import urllib2
>>> j = urllib2.urlopen('http://maps.googleapis.com/maps/api/distancematrix/json?origins=Dublin+Ireland&destinations=Cork+Ireland|Limerick+Ireland|Galway+Ireland|&mode=driving&sensor=false')
>>> js = json.load(j)
>>> ourResult = js['rows'][0]['elements']
>>> for rs in ourResult:
>>> print rs['distance']
{u'text': u'255 km', u'value': 255493}
{u'text': u'197 km', u'value': 196553}
{u'text': u'208 km', u'value': 208373}
我试图仅引用距离值(即“文本”值),但我所能做的就是引用这些字母。我试过了:
>>> x = rs['distance']
>>> z = [y[0] for y in x]
>>> print z
[u't', u'v']
我所能提到的只是字母而不是数字。 我不知道还有什么可以尝试,所以任何帮助都会非常感激。
谢谢,
尼克
答案 0 :(得分:3)
您想要访问字典中的值,I.E。:
for rs in ourResult:
print(rs['distance']['text'])
您的问题是y in dictionary
列出字典的键,而不是值。在上一次列表理解中,您将打印每个键的0索引项(第一个字母)。
只是为了踢,尝试复制并运行它:
from collections import OrderedDict
dictionary = OrderedDict([("list", "value 0"), ("the", "value 1"), ("keys", "value 2")])
print("key in dictionary:")
for key in dictionary:
print(key)
print("value in dictionary.values():")
for value in dictionary.values():
print(value)
print("key, value in dictionary.items():")
for key, value in dictionary.items():
print(key, value)
OrderedDict
的行为与普通词典相似,但也会跟踪key:value
对的顺序。我在这里使用了一个这样的示例输出,但你可以认为它只是.values
,.keys
和.items
的另一个字典。