python查天气预报_Python编写一个天气预报查询系统

15393268546734e06d9b75e

学了Python这么久 可以用它来做许多好玩的小程序哦! 这里给 大家做了个查询天气预报的小程序! 可以查询未来几天的天气! 需要大家自己修改下代码即可!

首先我们需要建立一个字典dict 用来存放城市编码! 因为API接口是根据城市编码来查询的 ! 由于城市编码比较多 2600多行 所有不在这里发了! 需要的可以自行百度去下载哦!

15393269799972f31e00712

我们再来分析下api接口 http://t.weather.sojson.com/api/weather/city/101010100

{"time":"2018-10-12 08:00:56","cityInfo":{"city":"北京市","cityId":"101010100","parent":"北京","updateTime":"07:44"},"date":"20181012","message":"Success !","status":200,"data":{"shidu":"74%","pm25":13.0,"pm10":45.0,"quality":"优","wendu":"5","ganmao":"各类人群可自由活动","yesterday":{"date":"11日星期四","sunrise":"06:19","high":"高温 18.0℃","low":"低温 5.0℃","sunset":"17:43","aqi":36.0,"fx":"西南风","fl":"<3级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},"forecast":[{"date":"12日星期五","sunrise":"06:20","high":"高温 20.0℃","low":"低温 8.0℃","sunset":"17:41","aqi":53.0,"fx":"南风","fl":"<3级","type":"多云","notice":"阴晴之间,谨防紫外线侵扰"},{"date":"13日星期六","sunrise":"06:21","high":"高温 20.0℃","low":"低温 8.0℃","sunset":"17:40","aqi":73.0,"fx":"西南风","fl":"<3级","type":"多云","notice":"阴晴之间,谨防紫外线侵扰"},{"date":"14日星期日","sunrise":"06:22","high":"高温 22.0℃","low":"低温 10.0℃","sunset":"17:38","aqi":95.0,"fx":"西南风","fl":"<3级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"15日星期一","sunrise":"06:23","high":"高温 19.0℃","low":"低温 10.0℃","sunset":"17:37","aqi":61.0,"fx":"东北风","fl":"<3级","type":"多云","notice":"阴晴之间,谨防紫外线侵扰"},{"date":"16日星期二","sunrise":"06:24","high":"高温 20.0℃","low":"低温 9.0℃","sunset":"17:35","aqi":54.0,"fx":"北风","fl":"<3级","type":"多云","notice":"阴晴之间,谨防紫外线侵扰"}]}}

返回的是一个json 我们用 requests_html库 get请求即可 这个库是自带json()的!

1539327151494c3d3ad9b91

好了 废话不多说了 我们还是直接上代码吧! 如有不足的地方欢迎指出!还请大神勿喷!

from requests_html import HTMLSession

from city import city

session = HTMLSession()

def weather(cs):

dm = city(cs)

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'

}

url = 'http://t.weather.sojson.com/api/weather/city/%s' % dm

r = session.get(url, headers=headers)

#r.encoding = r.apparent_encoding

r = r.json()

try:

print(r['time'] + r['cityInfo']['city'])

for i in r['data']['forecast'][0]:

print(r['data']['forecast'][0][i])

except:

print('查询失败!请确认城市名称是否正确!')

if __name__ == '__main__':

while True:

print('*' * 7 + '小七天气预报查询!(输入0退出!)' + '*' * 7)

cs = input('请输入城市名称: ')

if cs != '0':

weather(cs)

else:

print('欢迎再次使用!\n已经退出天气查询!')

break

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python天气预报系统一个基于Python编程语言开发的应用程序,主要用于查询和显示特定地区的气情况。 该系统从互联网天气预报数据源收集数据,并通过简单的用户界面显示相关信息,例如当前气状况、温度、湿度、风力等。用户可以搜索特定城市或地区,以获取该地区气信息。 Python天气预报系统使用Python编写的脚本与第三方API进行数据交换,使其能够实时更新数据。开发人员使用标准的网络协议将系统与互联网天气预报数据源进行连接,以获取实时气信息。 该系统还具有一些高级功能,例如提供七天气预报、雷暴警报、气图表等。通过这些功能,用户可以更加直观地了解未来气趋势和可能出现的气变化。 总之,Python天气预报系统提供了一种方便、实用的方式来获取气信息,其易用性和高效性受到了广泛的认可和欢迎。 ### 回答2: Python天气预报系统一个基于Python语言开发的应用程序,其主要功能是查询和展示当前和未来气情况。 该系统可以通过调用不同的API接口来获取实时的气数据,并将其以可视化的方式呈现给用户。用户可以通过输入地理位置或者使用IP地址定位的方式来查询所需的气数据,并可根据自己的需求选择相关的展示方式。 该系统的开发需要使用Python编程语言进行,同时还需要掌握相关的网络编程和数据处理技术。在开发过程中需要了解气API的使用,具体包括请求API数据、解析JSON格式数据等操作。 相比于传统的天气预报方式,Python天气预报系统具有以下几点优势: 1. 实时性更高:气数据可以及时更新,确保用户获取到最新的气情况。 2. 数据展示更直观:通过数据可视化的方式呈现给用户,更方便用户理解和使用。 3. 可扩展性更强:使用Python语言进行开发,系统具有良好的扩展性,可根据不同的需求进行功能扩展或定制化开发。 Python天气预报系统的开发需要耗费一定的编程技术和时间成本,同时还需要了解气API接口的使用,但是该系统可以极大地提高天气预报的实时性和准确性,对于需要获取大量气数据的企业或行业来说,是一种较为实用和高效的解决方案。 ### 回答3: Python天气预报系统是一种基于Python语言编写的软件系统,用于预测和展示未来的气象变化状况,提供用户便捷的查询气的服务。Python天气预报系统可以接入外部API获取实时的气数据,并通过可视化操作展现简单、明了的气信息,方便用户进行查询和了解气变化。 Python天气预报系统可以根据用户所处的地理位置、时间、气变化等因素,提供精确的天气预报数据。系统的核心模块采用机器学习算法,根据历史数据和当前数据,预测未来气变化情况,并且能自适应地改变预测模型,保证预测的准确性和可靠性。 Python天气预报系统适用于各类应用场景,如城市气数据查询、飞行管制、交通出行等。系统支持自动更新气信息,用户可以轻松地利用Python天气预报系统得到最新的气信息,并根据气情况做出相应的决策。 Python天气预报系统的优点在于:可拓展性高、开发效率高、跨平台性好、对用户友好等。Python天气预报系统还可以通过与其他应用的集成,实现更加丰富的功能。如与智能家居系统集成,根据气变化控制家居电器、室内温度等,进一步扩大了Python天气预报系统的应用范围。 总之,Python天气预报系统是一款可信赖、高效、精准的天气预报软件,有着广泛的应用前景,能够为用户带来更加便捷、准确、可靠的查询、预报服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值