首页 > 其他分享 >彩云天气API 获取实时及当日天气等内容

彩云天气API 获取实时及当日天气等内容

时间:2024-10-15 20:12:55浏览次数:7  
标签:realtime 彩云 get 天气 daily API weather skycon data

import requests
 # 用户输入的秘钥和经纬度(以逗号分隔)
api_key = ""  # 这里输入用户自己的秘钥
location = ""  # 输入用户的经纬度
 
# 抓取天气信息的函数
def get_weather_info(api_key, location):
    try:
        # 实时天气API
        realtime_url = f"https://api.caiyunapp.com/v2.6/{api_key}/{location}/realtime"
        # 当日天气API
        daily_url = f"https://api.caiyunapp.com/v2.6/{api_key}/{location}/daily?dailysteps=1"
 
        # 获取实时天气数据
        realtime_response = requests.get(realtime_url)
        # 获取当日天气数据
        daily_response = requests.get(daily_url)
 
        if realtime_response.status_code == 200 and daily_response.status_code == 200:
            realtime_data = realtime_response.json().get('result', {}).get('realtime', {})
            daily_data = daily_response.json().get('result', {}).get('daily', {})
 
            # 提取实时天气数据
            temperature = realtime_data.get('temperature')
            humidity = realtime_data.get('humidity')
            skycon = realtime_data.get('skycon')
            wind = realtime_data.get('wind', {})
            apparent_temperature = realtime_data.get('apparent_temperature')
            precipitation = realtime_data.get('precipitation', {})
            local_precip = precipitation.get('local', {})
            nearest_precip = precipitation.get('nearest', {})
 
            # 提取当日天气数据
            daily_temp = daily_data.get('temperature', [{}])[0]
            daily_humidity = daily_data.get('humidity', [{}])[0]
            daily_skycon = daily_data.get('skycon', [{}])[0].get('value', '未知')
 
            # 天气状况翻译
            skycon_translation = {
                "CLEAR_DAY": "晴天",
                "CLEAR_NIGHT": "晴夜",
                "PARTLY_CLOUDY_DAY": "多云",
                "PARTLY_CLOUDY_NIGHT": "多云夜晚",
                "CLOUDY": "阴天",
                "LIGHT_HAZE": "轻度雾霾",
                "MODERATE_HAZE": "中度雾霾",
                "HEAVY_HAZE": "重度雾霾",
                "LIGHT_RAIN": "小雨",
                "MODERATE_RAIN": "中雨",
                "HEAVY_RAIN": "大雨",
                "STORM_RAIN": "暴雨",
                "FOG": "雾",
                "LIGHT_SNOW": "小雪",
                "MODERATE_SNOW": "中雪",
                "HEAVY_SNOW": "大雪",
                "STORM_SNOW": "暴雪",
                "DUST": "浮尘",
                "SAND": "沙尘",
                "WIND": "大风"
            }
 
            # 翻译天气状况
            skycon_desc = skycon_translation.get(skycon, "未知天气状况")
 
            # 构建输出字符串
            weather_info = (
                f"实时天气情况: {skycon_desc}\n"
                f"实时温度: {round(temperature)}°C (体感: {round(apparent_temperature)}°C)\n"
                f"每秒风速: {wind.get('speed')}米\n"
            )
 
            # 判断降水状况
            if local_precip.get('intensity', 0) == 0 and nearest_precip.get('distance', 0) > 10000:
                weather_info += "降水监测: 目前无降水(雷达显示最近降水距离超过10公里)"
            else:
                weather_info += "降水监测: 雷达显示10公里区域内存在降水"
 
            # 加入当日天气信息(只显示温度、湿度和天气状况)
            weather_info += (
                f"\n当日天气情况: {skycon_translation.get(daily_skycon, '未知')}\n"
                f"当日温度: {round(daily_temp.get('min'))}°C ~ {round(daily_temp.get('max'))}°C\n"
                f"当日湿度: {round(int(daily_humidity.get('min') * 100))} % ~ {round(int(daily_humidity.get('max') * 100))} %\n"
            )
 
            return weather_info
        else:
            return "无法获取天气数据。"
 
    except requests.exceptions.RequestException as e:
        print(f"抓取天气信息失败: {e}")
        return None
 
# 主程序入口
if __name__ == "__main__":
 
    # 调用天气信息函数
    weather_result = get_weather_info(api_key, location)
 
    if weather_result:
        print("公司总部天气信息:\n",weather_result)
    else:
        print("未能提取到天气信息。")

 

标签:realtime,彩云,get,天气,daily,API,weather,skycon,data
From: https://www.cnblogs.com/gnz48/p/18468333

相关文章

  • C++使用MySQL官方的C API访问MySQL数据库
    这篇文章是一个简单的C++使用MySQL官方的CAPI访问MySQL数据库的代码示例。//main.h#ifndef_H_#define_H_#include<stdio.h>#include<Windows.h>#include<mysql.h>#pragmacomment(lib,"libmysql.lib")#defineinsert_prepare"insertintotest_tbvalue......
  • Recaptcha3 协议识别 API 对接说明
    Recaptcha3协议识别API对接说明本文将介绍一种Recaptcha3协议识别API对接说明,它可让用户无需识别和点选Recaptcha3验证码图片,仅需通过提交WebsiteKey即可实现后台自动解码,完成验证。接下来介绍下Recaptcha3协议识别API的对接说明。注册链接点击链接注册......
  • 五官定位 API 对接说明
    五官定位API对接说明本文将介绍一种五官定位API对接说明,它可以通过输入图片,对请求图片进行五官定位(也称人脸关键点定位),计算构成人脸轮廓的90个点,包括眉毛(左右各8点)、眼睛(左右各8点)、鼻子(13点)、嘴巴(22点)、脸型轮廓(21点)、眼珠[或瞳孔](2点)。接下来介绍下五官......
  • API数据调用频率限制怎么办?
    缓存结果:通过暂存API的响应数据,可以有效减少对于相同请求的重复发起,从而降低达到频率限制的风险。例如,对于不经常变化的数据,如城市的地理位置信息,可以设置相对长的缓存时长。减少请求次数:优化应用逻辑,合并多个API请求为一次请求,或者在必要时才发起请求。使用合适的数据传输......
  • 获取淘宝商品详情API数据:代码示例
    前提条件在开始之前,你需要在开放平台注册账号,并创建一个应用以获取API密钥(AppKey和AppSecret)。此外,你还需要获取访问令牌(AccessToken),这通常需要通过OAuth2.0认证流程来实现。获取key和secretitem_get-获得商品详情taobao.item_get公共参数请求地址: 名称类型必须......
  • 双十一将近,如何解决API接口调用数据超量及报错问题?
    随着双十一的临近,电商平台的API接口面临着巨大的挑战,尤其是在数据超量和报错问题上。以下是一些解决方案和最佳实践,可以帮助你一站式解决这些问题。1.性能测试在大促期间,如双十一,流量会大幅增长,因此进行性能测试是必要的。性能测试包括负载测试、基线测试、冒烟测试、浸泡......
  • 身份证实名认证API集成-二要素实名认证-实名认证接口-身份认证
    身份证实名认证接口是当下互联网服务用于验证用户真实身份的重要手段之一。在互联网金融、电子商务、社交网络等众多领域中,实名认证可以帮助平台更好的了解和服务在线用户,以做到防范欺诈行为的发生,保障交易资金与信息安全,该接口功能一般由第三方平台(如翔云、阿里云)来提供。......
  • 淘宝商品详情API接口信息获取指南
    淘宝商品详情API接口,作为我国电商巨头淘宝开放平台的重要组成部分,为广大开发者提供了一种便捷、高效的方式,以获取淘宝商品详细信息。该接口的推出,不仅满足了开发者对商品数据的需求,也为消费者带来了更加丰富的购物体验。一、淘宝商品详情API接口具有以下特点:数据丰富:该接口......
  • 淘宝商品关键词API接口:关键词数据智能分析
    淘宝商品关键词API接口是淘宝开放平台(TaobaoOpenPlatform,TOP)提供的一项服务,它允许第三方开发者通过编程方式访问淘宝的商品信息数据库。这个接口的主要功能是根据开发者提供的关键词,检索淘宝平台上的商品列表及相关信息。一、功能和特点数据检索:可以检索特定关键词下的......
  • 用python、JavaScript、JAVA等多种语言的实例代码演示教你如何免费获取股票数据(实时数
    ​近一两年来,股票量化分析逐渐受到广泛关注。而作为这一领域的初学者,首先需要面对的挑战就是如何获取全面且准确的股票数据。因为无论是实时交易数据、历史交易记录、财务数据还是基本面信息,这些数据都是我们进行量化分析时不可或缺的宝贵资源。我们的核心任务是从这些数据......