免费的天气api以及一些需要注意的地方

免费的天气api

网络上可以找到许多免费获取天气信息的api,大多是遵循着以下流程:

获取城市编号->获得该城市的天气信息

获取的数据一般是json格式。

这里推荐一个API接口:

# YOUR_CITY参数可以为拼音,也可以为urlencode后的中文
http://hao.weidunewtab.com/tianqi/city.php?city=YOUR_CITY

http://hao.weidunewtab.com/myapp/weather/data/index.php?cityID=CITY_ID

分别是获取城市编号接口和获取天气信息接口。

这两个接口的速度和稳定性都不错,推荐使用。

返回结果的编码

在用python通过这个api获取到json格式的天气数据后,发现某些城市的数据解释不了。

用repr()函数打印返回结果,发现部分城市(例如广州)的数据的头部多了3个字节:\xef\xbb\xbf。这是什么呢?

google了一番,原来这个是BOM。返回结果是一个”UTF-8+BOM”。这三个字节头表明数据是以utf-8编码的。

那么怎么兼容这种情况呢?又google了一番。找到了如下解决方案:

re = re.decode('utf-8-sig')

无论是否带BOM,结果都为不带BOM的str。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据