2016-12-13 17 views
0

Gmaps Distance Matrixを使用して、指定された起点と目的地からの距離を取得しています。私はJSON上から[ '値を'] [ '距離']を抽出したいgmaps距離行列のJSONからのpython抽出値

{'status': 'OK', 'origin_addresses': ['Depok, Depok City, West Java, Indonesia'], 'rows': [{'elements': [{'status': 'OK', 'duration': {'value': 4366, 'text': '1 hour 13 mins'}, 'distance': {'value': 46143, 'text': '46.1 km'}}]}], 'destination_addresses': ['North Jakarta, North Jakarta City, Special Capital Region of Jakarta, Indonesia']} 

ddist = gmaps.distance_matrix (Origin, Destination) 

し、この結果を得ます。

これは私が今のところ持っているものです。

for who in ddistt.keys(): 
ddist = json.loads(ddistt) 
print('For %s: "value":' %who, ddist['rows']['element']['distance']['value']) 

、このエラーに戻る:

Traceback (most recent call last): 
    File "C:/src/distance.py", line 17, in <module> 
    ddist = json.loads(ddistt) 
    File "C:\Python35\lib\json\__init__.py", line 312, in loads 
    s.__class__.__name__)) 
TypeError: the JSON object must be str, not 'dict' 

それを修正する方法は?

答えて

1

返された値は既に辞書なので、json.loadsに電話する必要はありません。どうぞ:

>>> ddistt = {'status': 'OK', 'origin_addresses': ['Depok, Depok City, West Java, Indonesia'], 'rows': [{'elements': [{'status': 'OK', 'duration': {'value': 4366, 'text': '1 hour 13 mins'}, 'distance': {'value': 46143, 'text': '46.1 km'}}]}], 'destination_addresses': ['North Jakarta, North Jakarta City, Special Capital Region of Jakarta, Indonesia']} 
>>> ddistt["rows"][0]["elements"][0]["distance"]["value"] 
46143 
関連する問題