2014-10-08 5 views
0

json 소스에서 온도를 얻으려고합니다. 그것은 중첩 그리고 내가 JSON 파일이나 URL에서 중첩 된 값을 얻을 방법을 알아낼 수 없습니다 그래서 여기에 지금까지 내 코드를 제공 : 나는 한 번에 모든 값을 얻을 수있는 지금중첩 된 json 소스에서 값을 추출하는 방법은 무엇입니까?

#! /usr/bin/python 
    import urllib2 
    import json 
    f = urllib2.urlopen('http://api.openweathermap.org/data/2.5/find?q=London&units=metric') 
    json_string = f.read() 
    parsed_json = json.loads(json_string) 
    temp = parsed_json['list'] 
    print "Current temperature is: %s" % (temp) 
    f.close() 

을하지만 단지 특정 값 (내 경우 temp) 가능한 경우 u'temp '없이 값을 정리하는 것이 더 좋습니다.

+1

우수한 @ b4hand 내 경우는 좋은 쉽게 해결 합니다. 나는 실제로 이것을 몇 시간 동안 고심했다 :-) – ksp

+0

대답을위한 [객관적인 감상 방법] (http://stackoverflow.com/help/accepted-answer) 만 있다면. – b4hand

답변

0

u'temp'은 Python에서 JSON 문자열이 구문 분석되는 객체 인 unicode을 나타내는 방법입니다. 이게 니가 찾고있는거야?

print temp[0]['main']['temp'] 

난 당신이 전화하고있는 API의 구조를 모르는, 그래서 이것은 꽤 많은 가정을 만들 수 있지만, 그것은 당신에게 원시 온도를 얻을 것이다.

0

몇 개의 값을 되 찾을 수 있습니다. 그들 모두를 나열하려면 다음을 수행하십시오

import urllib2 
import json 

f = urllib2.urlopen('http://api.openweathermap.org/data/2.5/find?q=London&units=metric') 
json_string = f.read() 
parsed_json = json.loads(json_string) 
for each in parsed_json['list']: 
    country = each['sys']['country'] 
    temperature = each['main']['temp'] 
    print "Current Temperature in {} is {}".format(country, temperature) 

출력

Current Temperature in CA is 11.73 
Current Temperature in GB is 11.8 
관련 문제