首先,我会毫不犹豫地承认自己只是一个笨拙的文科学生,在这方面完全自学成才.也就是说,我正试图使用下面的代码从美国地质勘探局水数据服务获取值:

def main(gaugeId):

    # import modules
    import urllib2, json

    # create string
    url = "http://waterservices.usgs.gov/nwis/iv/?format=json&sites=" + gaugeId + "&parameterCd=00060,00065"

    # open connection to url
    urlFile = urllib2.urlopen(url)

    # load into local JSON list
    jsonList = json.load(urlFile)

    # extract and return
    # how to get cfs, ft, and zulu time?
    return [cfs, ft, time]

虽然我找到了一些关于如何从JSON响应中提取所需值的教程,但大多数都相当简单.我面临的困难是从这项服务返回的看起来非常复杂的响应中提取信息.通过查看响应,我可以看到我想要的是来自两个不同部分的值和一个时间值.因此,我可以查看响应,看看我需要什么,但我就是不能,为了我的生命,找出如何提取这些值.

推荐答案

使用json.loads将把数据转换成python dictionary.

Dictionaries values are accessed using ['key']

resp_str = {
  "name" : "ns1:timeSeriesResponseType",
  "declaredType" : "org.cuahsi.waterml.TimeSeriesResponseType",
  "scope" : "javax.xml.bind.JAXBElement$GlobalScope",
  "value" : {
    "queryInfo" : {
      "creationTime" : 1349724919000,
      "queryURL" : "http://waterservices.usgs.gov/nwis/iv/",
      "criteria" : {
        "locationParam" : "[ALL:103232434]",
        "variableParam" : "[00060, 00065]"
      },
      "note" : [ {
        "value" : "[ALL:103232434]",
        "title" : "filter:sites"
      }, {
        "value" : "[mode=LATEST, modifiedSince=null]",
        "title" : "filter:timeRange"
      }, {
        "value" : "sdas01",
        "title" : "server"
      } ]
    }
  },
  "nil" : false,
  "globalScope" : true,
  "typeSubstituted" : false
}

会翻译成python语言

resp_dict = json.loads(resp_str)

resp_dict['name'] # "ns1:timeSeriesResponseType"

resp_dict['value']['queryInfo']['creationTime'] # 1349724919000

Json相关问答推荐

JOLT转换,将属性复制到同级别的dict中

如何将自定义卡保存到dart/flutter中的共享偏好设置?

PowerShell女士:如何处理json对象?

如何在Swift中使用JSON编码器的泛型

如何获取 JSON 对象字段值和同一 JSON 对象的下一个数组中的字段值?

在Databricks中如何将JSON文件作为字典读取

如何使用 SQL Server 将 json 存储为字符串的列分解/规范化为行和列?

jq json - 按键名 Select

xidel:是否可以从 JSON 对象中检索特定的嵌套值?

嵌套 JSON 到 CSV(多级)

我无法在 Go - Gin 中解析日期/时间

向 JSON 文件添加注释

使用 jq 将键值行转换为 json

如何从 HttpClient 解析 JSON 字符串?

如何将 LinkedTreeMap 转换为 gson JsonObject

在 Postgres 中向 JSON 对象添加元素

使用适用于 Python 的 Google API - 我从哪里获取 client_secrets.json 文件?

请求返回字节,我无法解码它们

获取一个数字的 PHP 对象属性

在 .NET 中缩小缩进的 JSON 字符串