爬虫系列实战:使用json解析天气数据

大家好,爬虫是一项非常抢手的技能,收集、分析和清洗数据是数据科学项目中最重要的部分,本文介绍使用json解析气象局天气数据。

在官网上获取天气数据信息,可以定义当前查询的位置,提取时间、温度、湿度、气压、风速等信息,并导入requests、matplotlib这些需要用到的库。

# 导入以下模块
import requests
import matplotlib.pyplot as plt
import pylab as pl

1.获取今日天气

调用api接口地址,获取天气数据接口,本文获取57494代表武汉的数据接口,进而获取json数据,并判断json请求是否成功。

def get_weather():# 调用api接口地址# 获取57494代表武汉的天气数据接口url = "https://weather.cma.cn/api/now/57494"# 获取json数据json_datas = requests.get(url=url).json()#判断json请求是否成功?if json_datas.get("msg") == "success":# 请求成功json_location = json_datas.get("data").get("location")# 位置信息print('\n', '当前查询的位置'.center(50, '—'))print("城市代码: " + json_location.get("id") + "   城市名称: " + json_location.get("name") +"   详细地址: " + json_location.get("path"));# 当天天气信息json_now_data = json_datas.get("data").get("now")# 获取最新发布时间now_time = "最新天气发布时间:" + str(json_datas.get("data").get("lastUpdate"))print('\n',now_time.center(50, '—'))print("\n温度: " + str(json_now_data.get("temperature")) + "   气压: " + str(json_now_data.get("pressure")) +"  湿度: " + str(json_now_data.get("humidity")))print("\n风向: " + json_now_data.get("windDirection") + "   风力等级: " + json_now_data.get("windScale"))else:# 提示失败print("服务器返回的数据,失败了!")

2.可视化显示温度曲线

解析json数据,获取历史最大和最小的温度数据,进行图表绘制,可视化展示温度数据,使用绘图库输出可视化结果。

def get_Max_temperature():url = "https://weather.cma.cn/api/climate"# 1传数据参数params = {"stationid": 57494}# 2.获取json数据json_datas= requests.get(url=url, params=params).json()#print(json_datas)# 3.解析json数据,图表绘制data=json_datas.get("data").get("data")x = range(1, 13, 1) #显示12个月# 4.获取最大和最小的温度数据y = [maxTemp.get("maxTemp") for maxTemp in data]y1 = [minTemp.get("minTemp") for minTemp in data]pl.rcParams["font.sans-serif"] = ["SimHei"]plt.figure(figsize=(70, 70), dpi=100)plt.plot(x, y)plt.plot(x, y1)plt.xticks(x, ["{}月".format(i) for i in x])plt.title("1981年-2010年月平均气温和降水")plt.show()if __name__ == "__main__":get_weather()get_Max_temperature()print('数据获取完成!!!')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/630797.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RabbitMQ使用篇

☆* o(≧▽≦)o *☆嗨~我是小奥🍹 📄📄📄个人博客:小奥的博客 📄📄📄CSDN:个人CSDN 📙📙📙Github:传送门 📅&a…

(力扣记录)146. LRU 缓存

数据类型:链表 时间复杂度:O(1) 空间复杂度:O(N) 代码实现: class Node:def __init__(self, key-1, value-1):self.key keyself.val valueself.next Noneself.prev Noneclass LRUCache:def __init__(self, capacity: int)…

Django笔记(三):路由urls

首 Django中视图的作用是在链接与视图函数之间做映射。创建完Django项目后,同名文件夹下的urls.py为项目的总路由(/project/project/urls.py): from django.contrib import admin from django.urls import pathurlpatterns [pa…

微信小程序带参数分享界面、打开界面加载分享内容

分享功能是微信小程序常用功能之一,带参分享和加载可以让分享对象打开界面时看到和分享内容。 带参分享 用户点击微信小程序右上角自带分享,或者点击自定义分享按钮进行分享时,可在onShareAppMessage函数定义分享行为。 分享界面路径可带参…

USB转SPI USB转IIC 串口转SPI串口转IIC SPI I2C模块

一款支持USB转SPI、USB转I2C、USB转GPIO、USB转PWM、USB转ADC的模块。提供上位机工具,开发协议。 资料下载,链接:https://pan.baidu.com/s/1sw3RCMwjhrMO4qzUBq9bjA 提取码:qzjp 概述 串口转多协议模组为了客户调试一些功能…

PICO Developer Center 创建和调试 ADB 命令

PICO 开发者中心概览 ADB 是一个轻量级的 Android 调试桥(Android Debug Bridge,简称 ADB),用于与 Android 设备进行通信和调试。ADB提供了许多有用的功能,使开发人员能够轻松地管理和调试设备上的应用程序。 你可以使用 PDC 工具来调试系统…

阿里云服务器4核8G配置收费标准及新老用户优惠价格整理

阿里云服务器4核8g配置云服务器u1价格是955.58元一年,4核8G配置还可以选择ECS计算型c7实例、计算型c8i实例、计算平衡增强型c6e、ECS经济型e实例、AMD计算型c8a等机型等ECS实例规格,规格不同性能不同,价格也不同,阿里云服务器网al…

openssl3.2 - 官方demo学习 - smime - smsign2.c

文章目录 openssl3.2 - 官方demo学习 - smime - smsign2.c概述笔记END openssl3.2 - 官方demo学习 - smime - smsign2.c 概述 PKCS7联合签名 从N张证书中, 分别得到N对(x509和私钥) 对明文进行签名(只是指定了bio_in和flag), 得到pkcs7* 对此pkcs7进行附加签名者的操作(指定证…

SparkSession对象操作--学习笔记

1,SparkSession对象操作 from pyspark.sql import SparkSessionfrom pyspark import SparkConffrom pyspark.sql import functions as F"""创建ss对象时可以指定一些参数如果参数在脚本中不生效,就需要通过saprk-submit指令中进行设置spark sql 的分…

使用 vsCode创建GO项目

最近回顾了一下go的使用:具体操作看下面的参考连接,下面只描述一些踩过的坑: 1. go安装配置 安装go->配置go环境变量 推荐官网下载,速度很快; 这里需要配置五个参数:GOPATH/GOROOT/Path、GO111MODULE/…

基于kubernetes部署MySQL主从环境

部署方式 通过部署mysql主从容器,配置主从pod之间数据同步。 配置数据库访问的密码 创建 Mysql 密码的 Secret [rootk8s-master1 master]# kubectl create secret generic mysql-password --namespaceapp --from-literalmysql_root_passwordroot secret/mysql-pas…

Vue2:给组件绑定自定义事件

一、场景描述 我们在页面开发中,难免要使用事件。 在之前的学习中,我们学过click、keyup、change等事件,这些是Vue自带的事件。 它一般是用在原生的HTML元素上的。在组件上使用需要加native修饰 比如: h1绑定一个click事件&…

如何快速打造属于自己的接口自动化测试框架

1 接口测试 接口测试是对系统或组件之间的接口进行测试,主要是校验数据的交换,传递和控制管理过程,以及相互逻辑依赖关系。 接口自动化相对于UI自动化来说,属于更底层的测试,这样带来的好处就是测试收益更大&#xff…

WordPress设置回收站自动清理天数的插件Change Empty Trash Time

前面boke112百科跟大家分享的『WordPress回收站自动清空时间?如何关闭回收站或设置自动清理天数?』一文,就介绍了可以添加一行代码实现关闭或设置回收站自动清理时间,也可以通过安装Change Empty Trash Time插件来实现。 今天bok…

【论文阅读】One For All: Toward Training One Graph Model for All Classification Tasks

目录 0、基本信息1、研究动机2、创新点——One For All :unique features3、准备4、具体实现4.1、用TAGs统一来自不同领域的图数据4.2、用NOI(NODES-OF-INTEREST)统一不同图任务4.2.1、NOI子图4.2.2、NOI提示结点 4.3、用于图的上下文学习&am…

TypeError the JSON object must be str, bytes or bytearray, not ‘list‘

在使用python的jason库时,偶然碰到以下问题 TypeError: the JSON object must be str, bytes or bytearray, not ‘list’ 通过如下代码可复现问题 >>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> import json >>> ra json.loads(a) Trac…

java大数据hadoop2.9.2 Java编写Hadoop分析平均成绩

1、准备文件&#xff0c;例如score.txt&#xff0c;内容如下&#xff1a; zs k1 88 ls k1 98 ww k1 78 zs k2 88 ls k2 98 ww k2 78 zs k3 88 ls k3 98 ww k3 78 2、创建maven项目 <!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-common --><d…

【XTuner 大模型单卡低成本微调实战】学习笔记

参考学习教程【XTuner 大模型单卡低成本微调实战】 理论 Finetune简介 大语言模型 微调模式 增量预训练 指令跟随微调 LoRA和QLoRA Xtuner介绍 实战 自定义微调 用 Medication QA 数据集进行微调 将数据转为 XTuner 的数据格式 目标格式&#xff1a;(.jsonL) 写提示词请C…

ChatGPT 商业提示词攻略书

原文&#xff1a;ChatGPT Business Prompt Playbook 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 一、书系介绍 人工智能发展迅速。非常迅速。 所以我希望你做两件事&#xff1a; (1) 在 Twitter 上关注我&#xff1a;iamkylebalmer (2) 订阅我的免费电子邮件通…

react+antd,Table表头文字颜色设置

1、创建一个自定义的TableHeaderCell组件&#xff0c;并设置其样式为红色 const CustomTableHeaderCell ({ children }) > (<th style{{ color: "red" }}>{children}</th> ); 2、将CustomTableHeaderCell组件传递到Table组件的columns属性中的titl…