【问题标题】:python extract value from JSON of gmaps distance matrixpython从gmaps距离矩阵的JSON中提取值
【发布时间】:2016-12-13 07:14:57
【问题描述】:

我正在使用 Gmaps 距离矩阵来获取到给定起点和目的地的距离值。

ddist = gmaps.distance_matrix (Origin, Destination) 

并得到这个结果:

{'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']}

我想从上面的 JSON 中提取 ['distance']['value']。

这是我现在拥有的:

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'

如何解决?

【问题讨论】:

    标签: python json google-maps python-3.x


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-08
      • 1970-01-01
      • 2017-01-07
      • 1970-01-01
      • 2014-01-21
      • 1970-01-01
      相关资源
      最近更新 更多