pyOWM获取Weather类对象后无法访问其参数和方法如何解决
PyOWM Weather对象无法访问属性解决建议
- 先确认PyOWM版本,v2.x和v3.x的API差异很大,执行
pip show pyowm查看版本:
若使用v3.x版本,不能直接读取day.temperature属性,必须指定单位参数调用该方法,才能拿到包含温最值的字典,修改循环内的代码如下:for i in range(0,5): day = Forecast.get(i) days.append(day.reference_time('date')) # 传入单位参数:可选'celsius'(摄氏度)、'fahrenheit'(华氏度)、'kelvin'(开尔文) temp_info = day.temperature('celsius') max_temperature.append(temp_info["temp_max"]) min_temperature.append(temp_info["temp_min"]) - 若所有方法、属性都无法访问,执行
print(dir(day))输出该实例的所有可用属性和方法,核对你调用的属性名、方法名是否拼写错误,部分旧版本中reference_time方法名为get_reference_time - 先打印
print(day)确认Weather实例有实际数据,若API请求失败,返回的空占位Weather实例也会显示正确的类名,但没有任何有效属性 - 若仅IDE提示属性不存在但实际运行代码能输出正确结果,属于IDE类型提示适配问题,忽略提示即可
内容的提问来源于stack exchange,提问作者AyuBisht
相关产品推荐
相关产品推荐

