专栏首页python3python学习——使用webAPI

python学习——使用webAPI

1、Web API

是网站的一部分,用于与使用非常具体的URL请求特定信息的程序交互。这种请求称为API调用。请求的数据将以易于处理的格式(JSON或CSV)返回。

2、GitHub

GitHub是一个让程序员能够协作开发项目的网站。GitHub上的项目都存储在仓库中,后者包含与项目相关联的一切:代码、项目参与者的信息、问题或bug报告等。

3、使用pip安装requests

requests包能让python程序轻松的向网站请求信息以及检查返回的相应。 安装命令如下:

4、处理API响应

#python_repos.py
#coding=gbk
import requests

#执行API调用并存储响应
url='https://api.github.com/search/repositories?q=language:python&sort=stars'

#获得响应对象
r=requests.get(url)

#获得状态码
print("status code:",r.status_code)

#将API响应存储在一个变量中,这个API返回JSON格式的信息,使用方法json把这些信息转换为一个python字典
response_dict=r.json()
print("Total repositories:",response_dict['total_count'])

5、处理响应字典

#探索有关仓库的信息
repo_dicts=response_dict['items']
print("Repositories returned:",len(repo_dicts))

print("\nSelected information about each repository:")
for repo_dict in repo_dicts:
    print('\nName:',repo_dict['name'])
    print('Owner:',repo_dict['owner']['login'])
    print('Stars:',repo_dict['stargazers_count'])
    print('Repository:',repo_dict['html_url'])
    print('Description:',repo_dict['description'])

6、使用pygal可视化仓库

#探索有关仓库的信息
repo_dicts=response_dict['items']

names,stars=[],[]
for repo_dict in repo_dicts:
    names.append(repo_dict['name'])
    stars.append(repo_dict['stargazers_count'])

#可视化
my_style=LS('#333366',base_style=LCS)

#创建pygal类的config实例,通过修改其属性,可定制图表外观
my_config=pygal.Config()

#让标签绕x轴旋转45度
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

#将较长的项目名缩短为15个字符
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-starred Python Projects on GitHub'
chart.x_labels=names

chart.add('',stars)
chart.render_to_file('python_repos.svg')

7、添加自定义工具提示和可点击的链接

for repo_dict in repo_dicts:
    names.append(repo_dict['name'])
    plot_dict={
        'value':repo_dict['stargazers_count'],
        'label':repo_dict['description'],
        'xlink':repo_dict['html_url']
        }
    plot_dicts.append(plot_dict)
chart.add('',plot_dicts)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python 3.7之使用web api

    py3study
  • 常用Linux命令

    py3study
  • Django之路由层

      上面我们说了,带()就是进行了分组,就会作为位置参数传给视图函数,视图函数也要以位置来区分每个数据,当数据很庞大时,就会混乱;其实我们在正则里面可以给分组的...

    py3study
  • AOSP源码下载的正确打开方式

    将REPO_URL的值修改为REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'

    devecor
  • Python设计模式之单例模式

      本系列文章是希望将软件项目中最常见的设计模式用通俗易懂的语言来讲解清楚,并通过Python来实现,每个设计模式都是围绕如下三个问题: 为什么?即为什么要使用...

    Jetpropelledsnake21
  • 2018-07-15

    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-...

    用户2235302
  • 从ArchiGAN:公寓建筑设计的生成技术,说起

    hi,大家好~我是shadow,一枚设计师/全栈工程师/算法研究员,目前主要研究方向是人工智能写作和人工智能设计,当然偶尔也会跨界到人工智能艺术及其他各种AI产...

    mixlab
  • 重排链表

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    栋先生
  • 树莓派:无需显示屏安装centOS

    原料:树莓派3B+一台、网线一只、32g内存卡,win10电脑一台,手机热点一部。

    用户5473628
  • 海康摄像头直播视频上传到流媒体服务器平台后如何降低延迟?(附TCP及UDP区别介绍)

    近期有位开发者为了用我们的国标GB28181流媒体服务器进行测试,在自己的现场环境安装了海康的有线摄像头,通过4g转wifi来连接,上传视频到平台之后,打开视频...

    EasyNVR

扫码关注云+社区

领取腾讯云代金券