2017-09-24 76 views
0

您好,我正在尝试使用python 3获取API,请求地下天气只是做一个简单的天气条件打印,有人可以给我一个小费,我做错了什么?我在这里有很多东西需要学习,所以学习曲线非常陡峭!对不起,如果问题是超级基本问题,那么在两者之间使用更好的代码是什么?至少有一个我可以工作,然后建立...谢谢。这两个代码都是我从WU网站& Github获得的示例脚本。第一个代码给我一个错误“对数据的观察([‘历史’] [‘观察’]): 类型错误:列表索引必须是整数或片,而不是STR”API请求天气地下

from urllib.request import urlopen 
import json 

api_key = "" 
date = "20170901" 
zip_code = "53711" 

response = urlopen("http://api.wunderground.com/api/%s/history_%s/q/%s.json" 
% (api_key, date, zip_code)) 

json_data = response.read().decode('utf-8', 'replace') 

data = json.loads(json_data) 

for observation in data (['history']['observations']): 
    print("Date/Time: " + observation['date']['pretty']) 
    print("Temperature: " + observation['tempi']) 
    print("Humidity:  " + observation['hum']) 

这是第二试图在我的第一个API请求,但它给我一个错误“类型错误:不支持的操作数类型为%:‘NoneType’和‘元组’”

from urllib.request import urlopen 
import json 

f = urlopen('http://api.wunderground.com/api//geolookup/conditions/q/IA/Cedar_Rapids.json') 

json_string = f.read() 

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) 
f.close() 

任何提示,亲可以给福利局上像这样的自我教学主题是非常感谢...我可以从吴看到我的API密钥正在工作...但代码是错误的:(

回答

0

您在第二个示例中遇到错误的原因是因为这看起来是无效的语法。我认为你正在寻找的是类似于以下内容的东西。

print("this is a %s" % ("my string",)) 

话虽这么说,我把一个包前一阵与入门地下气象帮助,如果你想看看一些指针。或者只需要安装WunderWeather。这是文档。

+0

嗨运行通过的PIP安装的wunderweather和tar.gz提取和安装过程,但我仍然得到一个模块未找到错误...任何提示? pip安装'py -3.6 -m pip install WunderWeather'工作得很好,但我仍然收到错误... – HenryHub