2012-02-21 6 views
0

У меня есть этот результат с использованием метода readLocation() из API SL4A. Это результат. Как я могу разобрать это, чтобы получить только высоту, долготу и широту?Python Strings and Dictionaries Parsing

Result(id=2, result={u'network': {u'altitude': 0, u'p 
    rovider': u'network', u'longitude': -97.6591116000000 
    03, u'time': 1329794430482L, u'latitude': 30.44257223 
    3333333, u'speed': 0, u'accuracy': 51}}, error=None) 

Я пробовал с этим кодом:

import android, string, time 

    droid = android.Android() 
    droid.startLocating() 
    time.sleep(5) 

    res = droid.readLocation() 

    print res.result[u'latitude'] 

Он вернулся: KeyError: u'latitude»

ответ

1

Assuming res is the name bound to that object, res.result[u'network'][u'altitude'] поможет вам высоту. Измените в соответствии с другими клавишами.

+0

Doesnt работа ... Посмотрите на моем редактировать мой пост – tabchas

+0

Oh NVM ... Я исправил его с помощью print res.result [u'network '] [u'latitude'] .... Спасибо в любом случае – tabchas

+0

Да, пропустил это. Починю. –

1

Как res.result, очевидно, состоит из вложенных dicts, res.result[u'network'][u'latitude'] должен делать трюк.

+0

Да, если бы я подумал, что из-за этого поздно ... Спасибо, хотя !! – tabchas

1

попробовать

res.result[u'network'][u'latitude'] 

поскольку сеть действует как ключ к словарю, содержащей высоте, долготы & широты

u'network' : { u'altitude': 0, u'provider': u'network',u'longitude': -97.6591116000000 03, u'time': 1329794430482L, u'latitude': 30.442572233333333, u'speed': 0, u'accuracy': 51} 
+0

Да, я подумал, что вроде поздно ... Спасибо, хотя! – tabchas