반응형
JSON 요소에 액세스
URL에서 날씨 정보를 얻고 있습니다.
weather = urllib2.urlopen('url')
wjson = weather.read()
그리고 내가 얻는 것은 :
{
"data": {
"current_condition": [{
"cloudcover": "0",
"humidity": "54",
"observation_time": "08:49 AM",
"precipMM": "0.0",
"pressure": "1025",
"temp_C": "10",
"temp_F": "50",
"visibility": "10",
"weatherCode": "113",
"weatherDesc": [{
"value": "Sunny"
}],
"weatherIconUrl": [{
"value": "http:\/\/www.worldweatheronline.com\/images\/wsymbols01_png_64\/wsymbol_0001_sunny.png"
}],
"winddir16Point": "E",
"winddirDegree": "100",
"windspeedKmph": "22",
"windspeedMiles": "14"
}]
}
}
원하는 요소에 어떻게 액세스 할 수 있습니까?
내가 할 경우 : 다음과 같은 print wjson['data']['current_condition']['temp_C']
오류가 발생합니다.
문자열 인덱스는 str이 아닌 정수 여야합니다.
import json
weather = urllib2.urlopen('url')
wjson = weather.read()
wjdata = json.loads(wjson)
print wjdata['data']['current_condition'][0]['temp_C']
URL에서 얻은 것은 json 문자열입니다. 그리고 인덱스로 직접 구문 분석 할 수 없습니다. 딕셔너리로 변환 json.loads
한 다음 인덱스로 구문 분석 할 수 있습니다.
대신 사용하는 .read()
그것을 읽어 후 메모리에 저장 중간에와 json
허용 json
파일에서 직접로드 :
wjdata = json.load(urllib2.urlopen('url'))
다음은 요청 을 사용하는 대체 솔루션입니다 .
import requests
wjdata = requests.get('url').json()
print wjdata['data']['current_condition'][0]['temp_C']
'temp_C'는 사전 내부 목록에있는 사전 내부의 키입니다.
이 방법은 다음과 같이 작동합니다.
wjson['data']['current_condition'][0]['temp_C']
>> '10'
참고URL : https://stackoverflow.com/questions/16129652/accessing-json-elements
반응형
'programing' 카테고리의 다른 글
Rails.cache.clear 특정 키 이름? (0) | 2020.11.24 |
---|---|
nginx-업스트림 서버에서 사용자 정의 헤더 읽기 (0) | 2020.11.24 |
내 GOPATH와 관련된 파일을 어떻게 열 수 있습니까? (0) | 2020.11.24 |
숭고한 텍스트 3 : 드래그 앤 드롭, 이동 및 파일 및 폴더 사본 만들기 (0) | 2020.11.24 |
uilabel 너비를 동적으로 조정하는 자동 레이아웃 (0) | 2020.11.24 |