2013-11-30 2 views
0

Я относительно новичок в python и кодировании вообще, поэтому мне действительно нужна помощь в этом. Это мой код, и я скажу вам, что я пытаюсь, и неудачу, чтобы сослаться потом:Обращающиеся элементы в разобранном json

>>> 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} 

Я пытаюсь ссылаться только на значение расстояния (то есть «текст» значение.), Но все, что я могу do - это ссылки на буквы. Я пробовал:

>>> x = rs['distance'] 
>>> z = [y[0] for y in x] 
>>> print z 
[u't', u'v'] 

Все, что я могу назвать, это буквы, но не цифры. Я не знаю, что еще попробовать, чтобы любая помощь вообще была бы высоко оценена.

Спасибо,

Ник

ответ

3

Вы хотите получить доступ к значению в словаре, т.е .:

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.

Смежные вопросы