본문 바로가기
파이썬

파이썬 How to extract a single value from JSON response?

by º기록 2021. 2. 4.
반응형

우선, 나는이 스크립트 작업에서 완전히 독학하는 서투른 인문학 녀석 이상이라는 것을 자유롭게 인정할 것입니다. 즉, 아래 코드를 사용하여 USGS Water Data Service에서 값을 가져 오려고합니다.

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 응답에서 원하는 값을 추출하는 방법에 대한 자습서를 찾았지만 대부분은 매우 간단합니다. 제가 겪고있는 어려움은이 서비스가 반환하는 매우 복잡한 응답에서 추출하는 것입니다. 응답을 통해 내가 원하는 것이 두 가지 섹션의 가치와 시간 가치임을 알 수 있습니다. 따라서 저는 응답을보고 필요한 것이 무엇인지 알 수 있습니다. 제 삶을 위해 이러한 값을 추출하는 방법을 알아낼 수는 없습니다.

 

해결 방법

 


[ '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
}

파이썬 사전으로 번역됩니다

resp_dict = json.loads(resp_str)

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

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

 

참조 페이지 https://stackoverflow.com/questions/12788217

 

 

반응형

댓글