我正在编写一个搜索天气的程序。 我正在尝试创建一个选项,您可以在其中搜索您的位置,但它似乎无法正常工作。
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()
我继续收到此错误
答案 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对象获取的变量位置。