JSONを返すようにしていますので、戻り値を変数に格納できますが、JSON変数は印刷されますが値は返されません。 または、グローバル変数以外のこれらの変数を他の関数にフェッチする方法があります。関数からJSON値を返しますが、関数から返さないようにしてください。
CODE
import json
import urllib.request
class Weather:
def set_api(self):
url = 'http://api.wunderground.com/api/8187218c2aca04ca/geolookup/conditions/q/IA/Cedar_Rapids.json'
f = urllib.request.urlopen(url)
json_string = f.read()
parsed_json = json.loads(json_string)
location = parsed_json['location']['city']
temp_c = parsed_json['current_observation']['temp_c']
print (location, temp_c) #WORKING
return location,temp_c #NOT WORKING
f.close()
myweather = Weather()
myweather.set_api()
OUTPUT
Cedar Rapids 10.2 #print output
また ' – stamaimer
、' f.close() 'が実行されることはありません '位置、temp_c = myweather.set_api()を使用してみてください。あなたは 'with'を使うべきです。 – DeepSpace