热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python天气预报数据库,基于Python的免费天气预报接口查询

本文转自SDK社区:sdk.cn一、开通接口天气预报接口服务使用的聚合数据提供的免费接口,每天可以100次免费调用。可以通过https:www.juhe

本文转自SDK社区:sdk.cn

一、开通接口

天气预报接口服务使用的聚合数据提供的免费接口,每天可以100次免费调用。可以通过https://www.juhe.cn/docs/api/id/73注册及开通。

二、Python2.x调用示例#!/usr/bin/python

# -*- coding: utf-8 -*-

import urllib, urllib2, sys, json

reload(sys)

sys.setdefaultencoding('utf-8')

url = 'http://apis.juhe.cn/simpleWeather/query'

params = {

"city": "北京", # 查询天气的城市名称,如:北京、苏州、上海

"key": "xxxxxxxx", # 您申请的接口API接口请求Key

}

querys = urllib.urlencode(params)

request = urllib2.Request(url, data=querys)

response = urllib2.urlopen(request)

content = response.read()

if (content):

try:

result = json.loads(content)

error_code = result['error_code']

if (error_code == 0):

temperature = result['result']['realtime']['temperature']

humidity = result['result']['realtime']['humidity']

info = result['result']['realtime']['info']

wid = result['result']['realtime']['wid']

direct = result['result']['realtime']['direct']

power = result['result']['realtime']['power']

aqi = result['result']['realtime']['aqi']

print("温度:%s\n湿度:%s\n天气:%s\n天气标识:%s\n风向:%s\n风力:%s\n空气质量:%s" % (temperature, humidity, info, wid, direct, power, aqi))

else:

print("请求失败:%s %s" % (result['error_code'], result['reason']))

except Exception as e:

print("解析结果异常:%s" % e)

else:

# 可能网络异常等问题,无法获取返回内容,请求异常

print("请求异常")

三、Python3.x调用示例#!/usr/bin/python

# -*- coding: utf-8 -*-

import urllib

import urllib.request as request

import urllib.error as error

import json

# 天气预报查询示例

def main():

api_url = 'http://apis.juhe.cn/simpleWeather/query'

params_dict = {

"city": "北京", # 查询天气的城市名称,如:北京、苏州、上海

"key": "xxxxxxxx", # 您申请的接口API接口请求Key

}

params = urllib.parse.urlencode(params_dict)

try:

req = request.Request(api_url, params.encode())

response = request.urlopen(req)

content = response.read()

if content:

try:

result = json.loads(content)

error_code = result['error_code']

if (error_code == 0):

temperature = result['result']['realtime']['temperature']

humidity = result['result']['realtime']['humidity']

info = result['result']['realtime']['info']

wid = result['result']['realtime']['wid']

direct = result['result']['realtime']['direct']

power = result['result']['realtime']['power']

aqi = result['result']['realtime']['aqi']

print("温度:%s\n湿度:%s\n天气:%s\n天气标识:%s\n风向:%s\n风力:%s\n空气质量:%s" % (

temperature, humidity, info, wid, direct, power, aqi))

else:

print("请求失败:%s %s" % (result['error_code'], result['reason']))

except Exception as e:

print("解析结果异常:%s" % e)

else:

# 可能网络异常等问题,无法获取返回内容,请求异常

print("请求异常")

except error.HTTPError as err:

print(err)

except error.URLError as err:

# 其他异常

print(err)

if __name__ == '__main__':

main()

四、返回结果

bVcPuyo



推荐阅读
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文讨论了使用差分约束系统求解House Man跳跃问题的思路与方法。给定一组不同高度,要求从最低点跳跃到最高点,每次跳跃的距离不超过D,并且不能改变给定的顺序。通过建立差分约束系统,将问题转化为图的建立和查询距离的问题。文章详细介绍了建立约束条件的方法,并使用SPFA算法判环并输出结果。同时还讨论了建边方向和跳跃顺序的关系。 ... [详细]
  • 本文介绍了一种划分和计数油田地块的方法。根据给定的条件,通过遍历和DFS算法,将符合条件的地块标记为不符合条件的地块,并进行计数。同时,还介绍了如何判断点是否在给定范围内的方法。 ... [详细]
  • 本文介绍了开关稳压器设计中PCB布局布线的重要性,并提供了相应的准则。开关稳压器作为一种高效的电源,逐渐取代了线性稳压器。开关模式电源的工作原理是通过一定的开启时间和关闭时间来实现电压转换。开关频率并不是影响系统的最大因素,而开关转换的速度才是关键。在系统噪声方面,开关频率或其谐波可能会对系统产生影响。严格遵守PCB布局布线的准则,可以将开关模式电源的相关问题降到最小。 ... [详细]
  • 开发笔记:Java是如何读取和写入浏览器Cookies的
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Java是如何读取和写入浏览器Cookies的相关的知识,希望对你有一定的参考价值。首先我 ... [详细]
author-avatar
狗狗狗699_250
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有