Python获取天气数据

        下面这段代码是一个简单的Python脚本,用来从互联网上获取天气预报信息并打印出来。通过获取知心天气(链接:https://www.seniverse.com/)的天气数据,然后对数据进行解析,以此获得天气数据并最终显示出来。

具体来说,它执行了以下步骤:

  1. 导入模块:代码开始于导入urllib.request库中的urlopen函数和json库。urlopen用于打开URLs(主要是HTTP请求),而json用于处理JSON数据格式。

  2. 发送请求:通过urlopen函数向SenIverse的天气API发送一个GET请求。这个API调用需要提供API密钥(在这个例子中为SC4sE_NLixYATghfn)和一个位置参数(这里使用IP地址)。其他参数包括语言选择(简体中文),单位系统(摄氏度)和天数(5天)。

  3. 读取响应:myURL.read()读取API响应的内容,并将其存储在变量str_S中。

  4. 打印原始数据:直接打印出变量str_S的内容,这通常是为了调试目的,以便查看未解析的原始JSON字符串。

  5. 解析JSON数据:使用json.loads(str_S)将JSON字符串转换为Python字典,赋值给变量STR_S

  6. 遍历结果:代码遍历STR_S['results']列表,每个元素代表一个地理位置的天气信息。对于每个结果,提取地点名称、国家、时区和最后更新时间,并打印出来。

  7. 获取详细天气信息:进一步遍历每个结果中的daily列表,该列表包含每天的天气信息。对于每一天,打印日期、白天天气状况、晚上天气状况、最高温度、最低温度、降雨量和湿度。

  8. 输出格式化:每组天气信息之间留有空格以便于阅读。

 示例代码:

from urllib.request import urlopen
import json

KEY = "你自己知心天气的私钥"

URL = "https://api.seniverse.com/v3/weather/daily.json?key=" + KEY + "&location=ip&language=zh-Hans&unit=c&start=0&days=5"

myURL = urlopen(URL)


str_S = myURL.read()

print(str_S)

STR_S = json.loads(str_S)

for result in STR_S['results']:
    location = result['location']
    print("地点:", location['name'])
    print("国家:", location['country'])
    print("时区:", location['timezone'])
    print("最后更新时间:", result['last_update'])
    print("天气预报:")
    for daily in result['daily']:
        print("日期:", daily['date'])
        print("白天天气:", daily['text_day'])
        print("晚上天气:", daily['text_night'])
        print("最高温度:", daily['high'])
        print("最低温度:", daily['low'])
        print("降雨量:", daily['rainfall'])
        print("湿度:", daily['humidity'])
        print(" ")


输出数据:

地点: 成都
国家: CN
时区: Asia/Shanghai
最后更新时间: 2024-02-24T08:00:00+08:00
天气预报:
日期: 2024-02-24
白天天气: 多云
晚上天气: 晴
最高温度: 9
最低温度: 2
降雨量: 0.00
湿度: 95
 
日期: 2024-02-25
白天天气: 多云
晚上天气: 多云
最高温度: 9
最低温度: 2
降雨量: 0.00
湿度: 90
 
日期: 2024-02-26
白天天气: 多云
晚上天气: 阴
最高温度: 10
最低温度: 3
降雨量: 0.00
湿度: 93
 

        整体而言,这段代码展示了如何使用Python的标准库来从网络API获取数据,并将这些数据解析成易于理解和查看的格式。这种技术在数据获取、监控和自动化任务中非常有用。通过替换API URL和参数,可以轻易地修改此代码来获取不同类型的数据。

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_755682240

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值