Python获取实况天气及7天预报

国内众多天气APP以及网站提供的天气实况和预报信息,最终的来源都是官方气象局。当然也有一些软件和网站数据来源是国外的气象机构。

那么我们也可以自己来获取,中国天气网提供了免费的数据接口,不过我这里使用的是由 和风天气 所提供的接口,获取数据的原始格式是 Json ,可以很容易的作为Python的字典类型使用。

数据的内容包括城市信息,天气实况(半小时左右更新一次),空气质量,以及7天详细预报。

需要一个百度的APIKEY,要注册一下就可以获取。在 http://apistore.baidu.com/apiworks/servicedetail/478.html 页面点击“获取apikey”

 1 #!/usr/bin/env python3
 2 import json
 3 import urllib.request
 4
 5
 6 def getCityWeather(cityName, bdAPI):
 7     ‘‘‘
 8     cityName:‘xian‘, bdAPI:百度apikey
 9     ‘‘‘
10     url = ‘http://apis.baidu.com/heweather/weather/free?city=‘ + cityName   # https也可以
11     request = urllib.request.Request(url)
12     request.add_header(‘apikey‘, bdAPI)
13     response = urllib.request.urlopen(request)
14     weatherInfo = response.read().decode(‘utf-8‘)
15     jsonDatas = json.loads(weatherInfo)
16     for k in jsonDatas.keys():  # 实际上只有一个键值对
17         dictDatas = jsonDatas[k][0]
18     return dictDatas
19
20
21 if __name__ == ‘__main__‘:
22     dictDatas = getCityWeather(‘xian‘, ‘xxxxxxxxxxxxxxxxxxxxxxxxxxx‘) # 替换city和apikey
23     print(dictDatas[‘basic‘][‘city‘])  # 地名
24     print(‘更新时间:‘, dictDatas[‘basic‘][‘update‘][‘loc‘])  # 更新时间
25     print(‘实况:‘, dictDatas[‘now‘])  # 实况数据
26     if ‘aqi‘ in dictDatas:  # 有些地方没有AQI数据,比如县级区域
27         print(‘AQI:‘, dictDatas[‘aqi‘][‘city‘])

执行结果:

西安
更新时间: 2015-12-22 20:05
实况: {‘tmp‘: ‘5‘, ‘pcpn‘: ‘0‘, ‘hum‘: ‘53‘, ‘fl‘: ‘2‘, ‘wind‘: {‘dir‘: ‘东风‘, ‘spd‘: ‘19‘, ‘sc‘: ‘4-5‘, ‘deg‘: ‘10‘}, ‘cond‘: {‘code‘: ‘502‘, ‘txt‘: ‘霾‘}, ‘pres‘: ‘1024‘, ‘vis‘: ‘1‘}
AQI: {‘qlty‘: ‘重度污染‘, ‘pm25‘: ‘194‘, ‘o3‘: ‘15‘, ‘so2‘: ‘78‘, ‘co‘: ‘3‘, ‘aqi‘: ‘245‘, ‘no2‘: ‘96‘, ‘pm10‘: ‘328‘}
时间: 2024-11-25 07:13:44

Python获取实况天气及7天预报的相关文章

python 学习笔记 12 -- 写一个脚本获取城市天气信息

最近在玩树莓派,前面写过一篇在树莓派上使用1602液晶显示屏,那么能够显示后最重要的就是显示什么的问题了.最容易想到的就是显示时间啊,CPU利用率啊,IP地址之类的.那么我觉得呢,如果能够显示当前时间.温度也是甚好的,作为一个桌面小时钟还是很精致的. 1. 目前有哪些工具 目前比较好用的应该是 weather-util, 之前我获取天气信息一般都是通过它. 使用起来也很简单: (1) Debian/Ubuntu 用户使用 sudo apt-get install weather-util 安装

Python获取当地的天气和任意城市的天气

先从中国天气网得到数据('http://www.weather.com.cn/data/cityinfo/'+城市编码),每个城市都有各自的编码,如何得到用户所在地的城市编码呢?用一个网页就是专门干这个的!http://61.4.185.48:81/g/ 附录:所有城市的编码 101010100=北京 101010200=海淀 101010300=朝阳 101010400=顺义 101010500=怀柔 101010600=通州 101010700=昌平 101010800=延庆 1010109

python获取天气状况并以邮件的形式发到目的邮箱

python爬取天气情况 下面为示例代码: from urllib.request import urlopen from bs4 import BeautifulSoup from urllib.error import HTTPError import smtplib from email.mime.text import MIMEText from email.utils import formataddr import time """爬虫程序是一个需要后期投入很大维

使用Python获取各个城市当前的天气情况

这次的这个项目,弄了好几天,主要在tkinter上做GUI界面上一直卡住,在网上资料又不多,最后直接放弃稍微复杂的东西,直接做个简单点的界面. 程序功能: 1.可以查询不同城市的天气情况和显示时间,每60秒刷新次天气情况,如图:2.可以自由选择城市,选择之后立刻获取该城市的天气情况 关键代码 # _*_ coding: utf-8 _*_ import requests import time def weather_log(stu): #获取实时天气情况写入到文本 cu_time=time.s

[Android] AlertDialog获取网上天气并显示各城市天气

    最近帮同学做android百度地图,其中涉及到定位城市天气功能.才知道自己技术非常的一般,还有很多东西需要学习,同时需要回归到我研究生的方向--数据挖掘.同时又见识到了一位叫柳峰的大神,推荐大家去看看他的文章,好像他还是贵州的老乡.博文地址:http://blog.csdn.net/lyq8479/ 言归正传,我主要通过两种方法实现: 1.第一种方法是通过调用中国天气网信息实现的,它的思想是通过查询静态数据库中个城市对应的WeatherCode,在通过访问中国天气网获取JSON格式数据显

使用python调用和风天气API查询当前天气信息

和风天气网址:https://www.heweather.com/ 注册后在控制台会有个人认证key API帮助文档:https://www.heweather.com/documents/api/v5 #!/usr/bin/python #-*-coding:utf-8-*- #调用和风天气API查询当前天气信息 #2017/07/12 import json import urllib2 import os city='北京' #在和风天气注册后获得的key key='your key' c

python 获取省份的天气预报

其实这些东西好像不用这样获取的,中国天气网上直接提供有天气的json数据接口, 不过最近想弄一个一键新闻或者其它例如糗百.微博热点.QQ热点聚合的东西. 先拿天气来练练手 其实这个不用模拟登陆,所以非常简单,上代码: # -*- coding: utf-8 -*- import urllib import re import thread class Wathereather_Spider_Model: def __init__(self): self.ok = False def getHtm

微信小程序获取今日天气预报代码 小程序获取七日天气

代码是天气api的小程序demo, 粘贴上js和wxml就可以运行看效果了, 有问题的加我qq 445899710, 可提供源代码, 效果如图 如果是测试, 请勾选配置 不校验合法域名.web-view(业务域名).TLS 版本以及 HTTPS 证书 如果正式使用, 请添加安全域名两个 (ip.tianqiapi.com 和 tianqiapi.com) index.js代码 //index.js //获取应用实例 const app = getApp() Page({ data: { weat

python获取微信公共平台消息列表和用户头像

转载需注明原文地址:http://blog.csdn.net/btyh17mxy/article/details/25207889 刚写的模拟登陆的方式从获取微信公众平台消息列表和用户头像的库,之后还会继续增加相关功能,github地址https://github.com/btyh17mxy/wxwall #!/usr/bin/env python # coding: UTF-8 import json import hashlib import re import random import