2016-01-23 3 views
0

Я пытаюсь создать программу, которая может успешно рассказать вам о погоде с помощью погоды api. Это api, я буду использовать http://www.wunderground.com/weather/api/d/docsКак использовать различные API-интерфейсы

Я изо всех сил пытаюсь понять, как использовать этот Api. Я нахожу это довольно запутанным. Я попытался использовать образец кода, представленный wunderground, но он, похоже, не работает в моем редакторе (возможность из-за того, что код является другой версией python.) Я использую python 3.5 Любые комментарии и любые предложения были бы очень оценил, как я могу использовать этот api.

Благодаря

ответ

0

Вот пример кода модифицирована для Python 3:

from urllib.request import Request, urlopen 
import json 

API_KEY = 'your API key' 
url = 'http://api.wunderground.com/api/{}/geolookup/conditions/q/IA/Cedar_Rapids.json'.format(API_KEY) 

request = Request(url) 
response = urlopen(request) 
json_string = response.read().decode('utf8') 
parsed_json = json.loads(json_string) 
location = parsed_json['location']['city'] 
temp_f = parsed_json['current_observation']['temp_f'] 
print("Current temperature in %s is: %s" % (location, temp_f)) 
response.close() 

Очевидно, вам нужно зарегистрироваться и получить ключ API. Используйте эту клавишу как значение для API_KEY. Если вы посмотрите на образец кода, а вошедший в него ключ уже будет вставлен в URL-адрес для вас.

Вы также можете использовать requests модуль, который легче работать, и поддерживает Python 2 и 3:

import requests 

API_KEY = 'your API key' 
url = 'http://api.wunderground.com/api/{}/geolookup/conditions/q/IA/Cedar_Rapids.json'.format(API_KEY) 

response = requests.get(url) 
parsed_json = response.json() 
location = parsed_json['location']['city'] 
temp_f = parsed_json['current_observation']['temp_f'] 
print("Current temperature in %s is: %s" % (location, temp_f)) 
+0

спасибо за этот образец кода, однако, когда я поставил код на холостом ходу, я получаю эту ошибку. location = parsed_json ['location'] ['city'] KeyError: 'location' – user3541130

+0

Почему, на ваш взгляд, это может быть? Попробуйте посмотреть значение 'parsed_json'. Возможно, вы обнаружили неправильный используемый вами ключ API. Или, возможно, запрашиваемый вами город недействителен. Попробуйте 'parsed_json ['response'] ['error']' – mhawke

+0

Снова посмотрите на значение 'parsed_json'? Теперь вы сообщаете о другой ошибке - работает ли 'parsed_json ['location'] ['city']'? Вы зарегистрировались и получили ключ API? Это довольно простой материал. Возможно, вам нужно прочитать словари Python. – mhawke