반응형
우선, 나는이 스크립트 작업에서 완전히 독학하는 서투른 인문학 녀석 이상이라는 것을 자유롭게 인정할 것입니다. 즉, 아래 코드를 사용하여 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 + "¶meterCd=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
반응형
'파이썬' 카테고리의 다른 글
파이썬 gunicorn autoreload on source change (0) | 2021.02.04 |
---|---|
파이썬 예외를 발견하면 유형, 파일 및 행 번호를 어떻게 얻습니까? (0) | 2021.02.04 |
파이썬 How do you do a simple "chmod +x" from within python? (0) | 2021.02.04 |
파이썬 두 목록에 Python에서 동일한 요소가 포함되어 있다고 주장하는 방법은 무엇입니까? (0) | 2021.02.04 |
파이썬 Making sure that psycopg2 database connection alive (0) | 2021.02.03 |
댓글