听说过高德版本的天气预报么

浏览: 1615

作者:国服帅座    经济学在读硕士

知乎ID:国服帅座

有了高德地图的导航,我们能踏遍祖国的绿水青山。其实,高德本身也是一座金山银山,蕴藏着丰富的数据资源。至于国服帅座,愿为一枚小小的数据搬运工。

认识高德地图API

打开“高德开放平台”,点击“开发文档”,在“Web服务”中寻找“天气查询”。

之前爬取经纬度时,我们曾使用过“地理编码”的API。同样,我们在调用“天气查询”API时,需要考虑到参数的设置。这里的参数比较少,合计只有四个:

  • key:高德密钥,先行注册的;

  • city:城市编码,即个人身份证号码前6位;

  • extensions:返回实时天气(base),或者预报未来三日天气(all);

  • output:默认输出格式为JSON,这正是笔者期望的。

预告浦口区的天气

以南京市浦口区为例,了解Python如何调用高德地图API爬取天气预报。

import requests        
import json
import pandas as pd 
from pandas import Series, DataFrame
url = 'https://restapi.amap.com/v3/weather/weatherInfo'
params = {'key''你的高德密钥',     # 你的密钥
          'city''320111',         # 以南京市浦口区为例
          'extensions''all'}      # 此处选择参数值为 all
res = requests.get(url,params)
# res.text
jd = json.loads(res.text)    # 将json格式转换为Python能读取的格式
tianqi = DataFrame(jd['forecasts'][0]['casts'])    # 提取天气信息
tianqi.columns = ['日期','白天风力','白天温度','白天天气','白天风向',
                 '夜间风力','夜间温度','夜间天气','夜间风向','星期几']   
tianqi            # 将列名修改为中文,便于理解

显示结果如下图所示,包括了当天以及未来三天的日间和夜间的多项天气指标。

整合为函数

为了更方便获取城市的天气情况,我们将上面步骤整合为一个函数。只要在函数的自变量位置输入该城市编码,便能直接输出该地当天以及未来三天的天气状况。

def tianqi(city):
    url = 'https://restapi.amap.com/v3/weather/weatherInfo'
    params = {'key''你的高德密钥',
              'city': city,
              'extensions''all'}     
    res = requests.get(url,params)
    jd = json.loads(res.text)
    results = DataFrame(jd['forecasts'][0]['casts'])
    results.columns = ['日期','白天风力','白天温度','白天天气','白天风向',
                       '夜间风力','夜间温度','夜间天气','夜间风向','星期几']
    return results 

我们可以把浦口区的地理编码代入,核实函数设置是否准确。


往期精彩传送

爬虫三步走——以R语言爬取经纬度为例

Python调用高德地图API爬取经纬度

Python调用百度地图API爬取经纬度

Python利用正则表达式分离经纬度


推荐 1
本文由 Economicoder 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册