Wunderground api搜索栏

时间:2016-01-24 16:48:20

标签: python json api

我正在编写一个搜索天气的程序。 我正在尝试创建一个选项,您可以在其中搜索您的位置,但它似乎无法正常工作。

  from urllib.request import Request, urlopen
  import json
  import re
  location = input('location you would like to know the weather for')

API_KEY = '<API-KEY>'
url = 'http://python-weather-api.googlecode.com/svn/trunk/ python-weather-api' + API_KEY +'/geolookup/conditions/q/IA/'+ location +'.json'


response = urllib.request.Request(url)


def response as request(url)
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()

我继续收到此错误

3 个答案:

答案 0 :(得分:1)

尚未发表评论(声誉太低,因为我刚加入SO),但关于你的&#34; urllib未定义&#34;问题,这与你如何导入urlopen函数有关。

而不是:

o(.)

尝试:

urllib.urlopen(url)

编辑:这是您的代码,已修复:

urlopen(url)

适用于多摩和IA的其他城市。请注意,像Des Moines这样的地名不会起作用,因为URL中不允许使用空格 - 您必须要处理这些问题。 (API的示例建议_用于空格http://www.wunderground.com/weather/api/d/docs?MR=1)。祝你好运!

答案 1 :(得分:1)

嘿嘿不确定你是否仍然坚持这个但是这是我的wunderground项目应该有你正在寻找的https://github.com/Oso9817/weather_texts

答案 2 :(得分:0)

如果你有str.input,你需要使用str(location)。现在,如果你进入python repl并输入str,你会发现它是一个保留的关键字。您希望使用从用户输入而不是str对象获取的变量位置。