【问题标题】:How do I read a distinct key value pair of a json response? [duplicate]如何读取 json 响应的不同键值对? [复制]
【发布时间】:2019-09-21 06:33:06
【问题描述】:

这个问题让我抓狂:

我请求一个 google api 来获得一个包含距离和持续时间的 json 响应。但我无法访问此 json 响应的不同键值对。我得到一个类型错误对象不可下标。

import requests
import json
link = 'https://maps.googleapis.com/...'
gmaps_json = requests.get(link).json()

我收到以下 json 响应:

{'destination_addresses': ['XXXXXX 3, 30165 Hannover, Germany'], 'origin_addresses': ['XXXXX 17, XXXXX XXXXXX, Germany'], 'rows': [{'elements': [{'distance': {'text': '196 km', 'value': 196077}, 'duration': {'text': '2 hours 10 mins', 'value': 7821}, 'status': 'OK'}]}], 'status': 'OK'}

我想访问“行”,我已经尝试过:

gmaps_json['rows'] 
gmaps_json[3]

但 TypeError 'NoneType' 总是不可下标

【问题讨论】:

  • 使用上面的 json,对我来说:print(gmaps_json['rows']) 工作正常
  • 这行可能是转换错误吗? gmaps_json = requests.get(link).json()

标签: python json api google-maps-api-3


【解决方案1】:

再次,使用您提供的 JSON,我能够很好地解析所有内容。这里有一个小例子可以帮助你。

gmaps_json = {'destination_addresses': ['XXXXXX 3, 30165 Hannover, Germany'], 'origin_addresses': ['XXXXX 17, XXXXX XXXXXX, Germany'], 'rows': [{'elements': [{'distance': {'text': '196 km', 'value': 196077}, 'duration': {'text': '2 hours 10 mins', 'value': 7821}, 'status': 'OK'}]}], 'status': 'OK'}

print("Distance : {}".format(gmaps_json['rows'][0]['elements'][0]['distance']))
print("Duration : {}".format(gmaps_json['rows'][0]['elements'][0]['duration']))
print("Status : {}".format(gmaps_json['rows'][0]['elements'][0]['status']))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-22
    • 2018-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多