python-使用API

python-使用API

使用github的api-即url地址请求数据

https://api.github.com/search/repositories?q=language:python&sort=stars
#这个调用返回GitHub当前托管了多少个Python项目,还有有关最受欢迎的Python仓库的信息。

在浏览器中输入上面地址可以看到该接口(api)返回的json数据

这里推荐下载JSON Formatter的扩展程序,会自动将json数据整理后呈现

在这里插入图片描述

1.安装requests

  • requests包让Python程序能够轻松地向网站请求信息以及检查返回的响应
  • 在命令行窗口输入指令安装
pip install --user requests

2.使用requests.get()方法

下面来编写一个程序,它执行API调用并处理结果,找出GitHub上星级最高的Python项目

import requestsurl = "https://api.github.com/search/repositories?q=language:python&sort=stars"
r = requests.get(url)
#使用requests.get()方法来请求地址,返回Response对象print(r.status_code)
#返回请求状态码req_json = r.json()
#将返回的Response对象的json内容并转成字典{key:value}
for key,value in req_json.items():print(f"{key}")"""输出:
200
total_count
incomplete_results
items
之后可通过req_json['total_count']
req_json['incomplete_results']
req_json['items']
进行访问数据
"""

接着你就可以使用字典和列表的嵌套去访问你想要的数据。

监视API的速率限制

大多数API都存在速率限制,即你在特定时间内可执行的请求数存在限制。

#浏览器输入https://api.github.com/rate_limit{"resources": {"core": {"limit": 60,"remaining": 58,"reset": 1426082320},"search": {"limit": 10,"remaining": 8,"reset": 1426078803}},"rate": {"limit": 60,"remaining": 58,"reset": 1426082320}
}#serch为搜索极限为每分钟10个请求,而在当前这一分钟还可以请求8次
#reset值指的是配额将重置的Unix时间或新纪元时间(1970年1月1日午夜后多少秒)

数据可视化

将获取到的数据进行可视化,呈现GitHub上Python项目的受欢迎程度

需求:

我们将创建一个交互式条形图:条形的高度表示项目获得了多少颗星。单击条形将带你进入项目在GitHub上的主页。

import requests
import csv
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
import  pygal
from pygal.style import LightColorizedStyle as LCS, LightenStyle as LSurl = "https://api.github.com/search/repositories?q=language:python&sort=stars"
r = requests.get(url)req_json = r.json()name= []
html_url = []
polt_dicts = []
for item in req_json['items']:name.append(item['name'])html_url.append('html_url')polt_dict = {'value':item['stargazers_count'],#value决定了表的值和高度'label':item['description'],#lable决定了鼠标悬停显示的提示内容'xlink': item['html_url'],#xlink决定了点击后的连接地址}polt_dicts.append(polt_dict)my_style = LS('#333366',base_style=LCS)my_config = pygal.Config()
my_config.x_label_rotation = 45
my_config.show_legend = False
my_config.title_font_size = 24
my_config.label_font_size = 14
my_config.major_label_font_size = 18
my_config.truncate_label = 15
my_config.show_y_guides = False
my_config.width = 1000
#一些参数chart = pygal.Bar(my_config,style = my_style)
chart.title ="Most -Stars python Project on GitHub"
#设置title
chart.x_labels = name
#设置x轴的标签
chart.add('',polt_dicts)
#设置其他信息
chart.render_to_file('python_repos.svg')
#保存为:python_repos.svg

在这里插入图片描述

可以实现鼠标悬停后显示相关描述,点击进入项目的github地址

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

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

相关文章

论文《Sensor and Sensor Fusion Technology in Autonomous Vehicles: A Review》详细解析

论文《Sensor and Sensor Fusion Technology in Autonomous Vehicles: A Review》详细解析 摘要 该论文对自动驾驶汽车中的传感器和传感器融合技术进行了全面回顾。它评估了各种传感器(如相机、LiDAR、雷达)的能力和技术性能,并讨论了多传感…

Linux完整版命令大全(二十一)

mkswap 功能说明:设置交换区(swap area)。语  法:mkswap [-cf][-v0][-v1][设备名称或文件][交换区大小]补充说明:mkswap可将磁盘分区或文件设为Linux的交换区。参  数: -c 建立交换区前,先检查是否有损坏的区…

帝国CMS7.5后台登陆显示Cann’t connect to DB解决办法

在帝国根目录中找到/e/config/config.php文件,修改一下数据库账户名和密码即可。 打开你的帝国的根目录,找到/e/config/config.php文件,修改一下数据库账户名和密码改下就ok了,代码如下: //数据库设置 $ecms_config[db][usedb]mysql; //数据库类型 $ecms_config…

什么是死锁?如何预防死锁?

什么是死锁? 死锁是指在并发编程中,两个或多个线程因相互等待对方持有的资源而无法继续执行导致程序不能正常结束的情况。 死锁的四个必要条件 互斥条件:至少有一个资源只能同时被一个线程占用;请求与保持条件:线程…

Ubuntu 安装libpng12的方法

由于新版的Ubuntu源不再包含libpng12,但是一些软件还是依赖libpng12,在网上查了下后有两种方法解决: 添加格外的源,博主用这种方法,还是下载不了: sudo add-apt-repository ppa:linuxuprising/libpng12 s…

fastadmin部署后JSHint报错,导致Config::getValueByName()无法获取到值

问题 解决方案 一、本地 在phpstorm中,依次点击【设置】-【JSHint】-【取消勾选Enable】-【应用】即可。

Vue的父子组件生命周期钩子函数执行顺序 ?

Vue的父子组件生命周期钩子函数的执行顺序可以清晰地分为几个阶段,包括加载渲染过程、更新过程以及销毁过程。以下是详细的解释: 加载渲染过程 父组件的beforeCreate:在父组件实例被创建之前调用。父组件的created:在父组件实例…

惠农云平台对接常见QA

一、开发测试所需信息。 1.网络相关。 需提供环境的ipport,提供域名也需提供对应的ipport,不支持仅提供域名方式,需标明哪个是开发测试环境哪个是生产环境,如果开发测试人员需要本地访问,也需要提供ipport并标明。不…

无需安装的在线PS:打开即用

为什么想用在线PS网页版?Photoshop常用于平面设计,是不少设计师接触过的第一款设计软件。作为一款平面设计工具,ps功能太多,并且没有在线版,这不仅需要设计师花费时间学习软件,还需要设计师具备一定的设计能…

正邦科技(day2)

自动校准 问题:电量不准都可以直接去校准 校准方式:可程式变频电压 问题分析:他是通过软件去自动自动校准的,flash 清空的时候有缓存没有清空,或者互感器没有读取到问题 互感器:电流互感器的作用包括电流测…

JS性能优化之函数唯一标识以及自记忆函数

历史小剧场 朱元璋在平定天下前,曾向谋士征求意见。有一位名叫朱升的学者,告诉朱元璋“高筑墙,广积粮,缓称王”。这条策略在朱元璋最终取得胜利的道路中发挥了重要的作用。 知识铺垫 函数可以像对象一样,动态创建和分配…

c++指针悬空用nullptr还是NULL

在C中,指针悬空(dangling pointer)是指一个指针指向了曾经有效但现在已经被释放或重新分配的内存。为了避免悬空指针带来的潜在问题,通常的做法是将指针设置为一个明确的无效值,这样在后续使用该指针之前,我…

[AIGC] Nginx反向代理配置实战

Nginx 是一款高性能的 HTTP 和反向代理服务器, 在许多高访问量的网站中应用广泛。其常见用途之一是 “反向代理”, 这意味着它可以将来自客户端的请求分发到背后的多个服务器, 从而负载均衡并提高网站的性能和可靠性。下面,让我们以 mybaidu.com 反向代理到 www.bai…

【DrissionPage爬虫库 1】两种模式分别爬取Gitee开源项目

文章目录 DrissionPage爬虫库简介1. 浏览器操控模式(类似于游戏中的后台模拟鼠标键盘)2. 数据包收发模式(类似于游戏中的协议封包) 实战中学习需求:爬取Gitee开源项目的标题与描述解决方案1:用数据包方式获…

cfa三级大神复习经验分享系列(五)

先是我的无力吐槽:考前两天我打算印准考证的时候,因为忘记自己的密码,试了几次账号就被锁了。简直被自己蠢哭了~然后马上写信给协会,再一直打台湾办事处的电话,非常神奇的是他们居然是按照美国时间工作的,打…

SSL证书:守护个人信息安全的坚固盾牌

在数字化浪潮汹涌的今天,我们的个人信息如同一座座宝藏,吸引着不法分子的贪婪目光。数据泄露事件频发,让信息安全问题日益凸显。而在这个信息爆炸的时代,如何保护我们的个人信息安全,成为了一个亟待解决的问题。幸运的…

opecv在图片上打印中文汉字

1.C版本 c实现大都依赖CvxText和FreeType库&#xff0c;本文介绍一种除opencv外不依赖第三方库的方法。 &#xff08;1&#xff09;文件putText.h #ifndef PUTTEXT_H_ #define PUTTEXT_H_ #include <windows.h> #include <string> #include <opencv2/opencv.…

股票量化交易上手,一个特别简单却长期可用的交易策略,官方接口

股票实现程序化自动化交易的三个基础&#xff1a;获取数据、执行交易、查询账户。 以后说到策略示例的时候就不介绍接口的基础使用方法了&#xff0c;随便一个策略把过程写出来都会很啰嗦&#xff0c;尽量压缩内容吧&#xff0c;这些内容是面向新手的&#xff0c;大佬们忽略细节…

少走弯路:esp32(esp8266)中查询子字符位置的性能改进

在极致化个人开源项目 GitHub - StarCompute/tftziku: 这是一个通过单片机在各种屏幕上显示中文的解决方案 的性能过程中 发觉&#xff1a;在esp8266中 对于一个String中查找某个child string的方法一般是使用indexof这个方法&#xff0c;如下&#xff1a; String strAll&qu…

qq音乐sign逆向

qq音乐sign参数逆向 1.概览 参数sign长度40 多次调试发现&#xff0c;前缀zzb不变 2.打日志 跟站发现是vpm&#xff0c;在apply调用打上日志断点&#xff1a; 连蒙带猜知道&#xff0c;最终字符串四部分构成&#xff0c;zzb 24DC2798 HI0TvE4tOMqzN4w88oZCjQ EE0A88FE 1.把…