当前位置: 首页 > news >正文

项目四网站建设内容西安官网seo公司

项目四网站建设内容,西安官网seo公司,怎么查自己注册的域名,常山做网站目录 16.2.10 加亮颜色主题 16.3 小结 第17 章 使用API 17.1 使用 Web API 17.1.1 Git 和 GitHub 17.1.2 使用 API 调用请求数据 17.1.3 安装 requests 17.1.4 处理 API 响应 python_repos.py 注意 17.1.5 处理响应字典 python_repos.py import json i…

 

目录

16.2.10 加亮颜色主题

16.3 小结

第17 章

使用API

17.1 使用 Web API

17.1.1 Git 和 GitHub

17.1.2 使用 API 调用请求数据

17.1.3 安装 requests

17.1.4 处理 API 响应

python_repos.py

注意

17.1.5 处理响应字典

python_repos.py


import json
import pygal
1 from pygal.style import RotateStyle
--snip--
# 根据人口数量将所有的国家分成三组
cc_pops_1, cc_pops_2, cc_pops_3 = {}, {}, {}
for cc, pop in cc_populations.items():if pop < 10000000:--snip-- 
2 wm_style = RotateStyle('#336699')
3 wm = pygal.Worldmap(style=wm_style)
wm.title = 'World Population in 2010, by Country'
--snip-- 

Pygal样式存储在模块style中,我们从这个模块中导入了样式RotateStyle(见1)。创建这 个类的实例时,需要提供一个实参——十六进制的RGB颜色(见2);Pygal将根据指定的颜色为 每组选择颜色。十六进制格式的RGB颜色是一个以井号(#)打头的字符串,后面跟着6个字符, 其中前两个字符表示红色分量,接下来的两个表示绿色分量,最后两个表示蓝色分量。每个分量 的取值范围为00(没有相应的颜色)~FF(包含最多的相应颜色)。如果你在线搜索hex color chooser (十六进制颜色选择器),可找到让你能够尝试选择不同的颜色并显示其RGB值的工具。这里使用 的颜色值(#336699)混合了少量的红色(33)、多一些的绿色(66)和更多一些的蓝色(99), 它为RotateStyle提供了一种淡蓝色基色。 RotateStyle返回一个样式对象,我们将其存储在wm_style中。为使用这个样式对象,我们在 创建Worldmap实例时以关键字实参的方式传递它(见3)。更新后的地图如图16-11所示。

前面的样式设置让地图的颜色更一致,也更容易区分不同的编组

16.2.10 加亮颜色主题

Pygal通常默认使用较暗的颜色主题。为方便印刷,我使用LightColorizedStyle加亮了地图的颜色。这个类修改整个图表的主题,包括背景色、标签以及各个国家的颜色。要使用这个样式, 先导入它:

from pygal.style import LightColorizedStyle

然后就可独立地使用LightColorizedStyle了,例如:

wm_style = LightColorizedStyle 

然而使用这个类时,你不能直接控制使用的颜色,Pygal将选择默认的基色。要设置颜色, 可使用RotateStyle,并将LightColorizedStyle作为基本样式。为此,导入LightColorizedStyle 和RotateStyle:

from pygal.style import LightColorizedStyle, RotateStyle

再使用RotateStyle创建一种样式,并传入另一个实参base_style:

wm_style = RotateStyle('#336699', base_style=LightColorizedStyle) 

这设置了较亮的主题,同时根据通过实参传递的颜色给各个国家着色。使用这种样式时,生 成的图表与本书的屏幕截图更一致。 尝试为不同的可视化选择合适的样式设置指令时,在import语句中指定别名会有所帮助:

from pygal.style import LightColorizedStyle as LCS, RotateStyle as RS

这样,样式定义将更短:

wm_style = RS('#336699', base_style=LCS)

通过使用几个样式设置指令,就能很好地控制图表和地图的外观。

16.3 小结

在本章中,你学习了:如何使用网上的数据集;如何处理CSV和JSON文件,以及如何提取 你感兴趣的数据;如何使用matplotlib来处理以往的天气数据,包括如何使用模块datetime,以及 如何在同一个图表中绘制多个数据系列;如何使用Pygal绘制呈现各国数据的世界地图,以及如 何设置Pygal地图和图表的样式。 有了使用CSV和JSON文件的经验后,你将能够处理几乎任何要分析的数据。大多数在线数 据集都可以以这两种格式中的一种或两种下载。学习使用这两种格式为学习使用其他格式的数据 做好了准备。 在下一章,你将编写自动从网上采集数据并对其进行可视化的程序。如果你只是将编程作为 业余爱好,学会这些技能可以增加乐趣;如果你有志于成为专业程序员,就必须掌握这些技能。


第17 章

使用API

17.1 使用 Web API

Web API是网站的一部分,用于与使用非常具体的URL请求特定信息的程序交互。这种请求 称为API调用。请求的数据将以易于处理的格式(如JSON或CSV)返回。依赖于外部数据源的大 多数应用程序都依赖于API调用,如集成社交媒体网站的应用程序。

17.1.1 Git 和 GitHub

本章的可视化将基于来自GitHub的信息,这是一个让程序员能够协作开发项目的网站。我们 将使用GitHub的API来请求有关该网站中Python项目的信息,然后使用Pygal生成交互式可视化, 以呈现这些项目的受欢迎程度。

GitHub(https://github.com/)的名字源自Git,Git是一个分布式版本控制系统,让程序员团队能 够协作开发项目。Git帮助大家管理为项目所做的工作,避免一个人所做的修改影响其他人所做的 修改。你在项目中实现新功能时,Git将跟踪你对每个文件所做的修改。确定代码可行后,你提交 所做的修改,而Git将记录项目最新的状态。如果你犯了错,想撤销所做的修改,可轻松地返回以 前的任何可行状态(要更深入地了解如何使用Git进行版本控制,请参阅附录D)。GitHub上的项目 都存储在仓库中,后者包含与项目相关联的一切:代码、项目参与者的信息、问题或bug报告等。 对于喜欢的项目,GitHub用户可给它加星(star)以表示支持,用户还可跟踪他可能想使用的项目。在本章中,我们将编写一个程序,它自动下载GitHub上星级最高的Python项目的信息, 并对这些信息进行可视化。

17.1.2 使用 API 调用请求数据

GitHub的API让你能够通过API调用来请求各种信息。要知道API调用是什么样的,请在浏览 器的地址栏中输入如下地址并按回车键:

这个调用返回GitHub当前托管了多少个Python项目,还有有关最受欢迎的Python仓库的信息。 下面来仔细研究这个调用。第一部分(https://api.github.com/)将请求发送到GitHub网站中响 应API调用的部分;接下来的一部分(search/repositories)让API搜索GitHub上的所有仓库。

repositories后面的问号指出我们要传递一个实参。q表示查询,而等号让我们能够开始指定 查询(q=)。通过使用language:python,我们指出只想获取主要语言为Python的仓库的信息。最 后一部分(&sort=stars)指定将项目按其获得的星级进行排序。 下面显示了响应的前几行。从响应可知,该URL并不适合人工输入。

{"total_count": 713062,"incomplete_results": false,"items": [{"id": 3544424,"name": "httpie","full_name": "jkbrzt/httpie",--snip-- 

从第二行输出可知,编写本书时,GitHub总共有713 062个Python项目。"incomplete_results" 的值为false,据此我们知道请求是成功的(它并非不完整的)。倘若GitHub无法全面处理该API, 它返回的这个值将为true。接下来的列表中显示了返回的"items",其中包含GitHub上最受欢迎 的Python项目的详细信息。

17.1.3 安装 requests

requests包让Python程序能够轻松地向网站请求信,息以及检查返回的响应。要安装requests, 请执行类似于下面的命令:

$ pip install --user requests

如果你还没有使用过pip,请参阅12.2.1节(根据系统的设置,你可能需要使用这个命令的稍 微不同的版本)。

17.1.4 处理 API 响应

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

python_repos.py
1 import requests
# 执行API调用并存储响应
2 url = 'https://api.github.com/search/repositories?q=language:python&sort=stars'
3 r = requests.get(url)
4 print("Status code:", r.status_code)
# 将API响应存储在一个变量中
5 response_dict = r.json()
# 处理结果
print(response_dict.keys())

在1处,我们导入了模块requests。在2处,我们存储API调用的URL,然后使用requests 来执行调用(见3)。我们调用get()并将URL传递给它,再将响应对象存储在变量r中。响应对 象包含一个名为status_code的属性,它让我们知道请求是否成功了(状态码200表示请求成功)。 在4处,我们打印status_code,核实调用是否成功了。 这个API返回JSON格式的信息,因此我们使用方法json()将这些信息转换为一个Python字典 (见5)。我们将转换得到的字典存储在response_dict中。 最后,我们打印response_dict中的键。输出如下:

Status code: 200
dict_keys(['items', 'total_count', 'incomplete_results'])

状态码为200,因此我们知道请求成功了。响应字典只包含三个键:'items'、'total_count' 和'incomplete_results'。


注意

像这样简单的调用应该会返回完整的结果集,因此完全可以忽略与'incomplete_results' 相关联的值。但执行更复杂的API调用时,程序应检查这个值。


17.1.5 处理响应字典

将API调用返回的信息存储到字典中后,就可以处理这个字典中的数据了。下面来生成一些 概述这些信息的输出。这是一种不错的方式,可确认收到了期望的信息,进而可以开始研究感兴 趣的信息:

python_repos.py
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响应存储在一个变量中
response_dict = r.json()
1 print("Total repositories:", response_dict['total_count'])
# 探索有关仓库的信息
2 repo_dicts = response_dict['items']
print("Repositories returned:", len(repo_dicts))
# 研究第一个仓库
3 repo_dict = repo_dicts[0]
4 print("\nKeys:", len(repo_dict))
5 for key in sorted(repo_dict.keys()):print(key) 

在1处,我们打印了与'total_count'相关联的值,它指出了GitHub总共包含多少个Python仓 库。

与'items'相关联的值是一个列表,其中包含很多字典,而每个字典都包含有关一个Python 仓库的信息。在2处,我们将这个字典列表存储在repo_dicts中。接下来,我们打印repo_dicts 的长度,以获悉我们获得了多少个仓库的信息。 为更深入地了解返回的有关每个仓库的信息,我们提取了repo_dicts中的第一个字典,并将 其存储在repo_dict中(见3)。接下来,我们打印这个字典包含的键数,看看其中有多少信息(见 4)。在5处,我们打印这个字典的所有键,看看其中包含哪些信息。 输出让我们对实际包含的数据有了更清晰的认识:

Status code: 200
Total repositories: 713062
Repositories returned: 30
1 Keys: 68
archive_url
assignees_url
blobs_url
--snip--
url
watchers
watchers_count

关于“Python”的核心知识点整理大全37-CSDN博客

关于“Python”的核心知识点整理大全25-CSDN博客

关于“Python”的核心知识点整理大全12-CSDN博客

往期快速传送门👆(在文章最后):

感谢大家的支持!欢迎订阅收藏!专栏将持续更新!


文章转载自:
http://picowatt.zfqr.cn
http://ungraciously.zfqr.cn
http://copyboy.zfqr.cn
http://latterly.zfqr.cn
http://afreet.zfqr.cn
http://brcs.zfqr.cn
http://enchondromatous.zfqr.cn
http://exopodite.zfqr.cn
http://fetalization.zfqr.cn
http://domiciliate.zfqr.cn
http://textureless.zfqr.cn
http://discusser.zfqr.cn
http://puli.zfqr.cn
http://parasitology.zfqr.cn
http://bronchogenic.zfqr.cn
http://bromid.zfqr.cn
http://inglenook.zfqr.cn
http://britainic.zfqr.cn
http://biomass.zfqr.cn
http://cation.zfqr.cn
http://entrench.zfqr.cn
http://dalek.zfqr.cn
http://octahedral.zfqr.cn
http://davit.zfqr.cn
http://tootle.zfqr.cn
http://leftlaid.zfqr.cn
http://restaurateur.zfqr.cn
http://leafage.zfqr.cn
http://auberge.zfqr.cn
http://stivy.zfqr.cn
http://seaway.zfqr.cn
http://hobart.zfqr.cn
http://logman.zfqr.cn
http://interoceanic.zfqr.cn
http://hyperactive.zfqr.cn
http://clypeus.zfqr.cn
http://xanthippe.zfqr.cn
http://soundscriber.zfqr.cn
http://carrion.zfqr.cn
http://pesach.zfqr.cn
http://moco.zfqr.cn
http://salientian.zfqr.cn
http://brunhild.zfqr.cn
http://deterioration.zfqr.cn
http://scorching.zfqr.cn
http://rainbow.zfqr.cn
http://divisive.zfqr.cn
http://lucia.zfqr.cn
http://hereupon.zfqr.cn
http://sulphamethazine.zfqr.cn
http://extragovernmental.zfqr.cn
http://cellarer.zfqr.cn
http://luxuriate.zfqr.cn
http://seraskier.zfqr.cn
http://posting.zfqr.cn
http://complex.zfqr.cn
http://acrodromous.zfqr.cn
http://stash.zfqr.cn
http://assent.zfqr.cn
http://emblazonment.zfqr.cn
http://thimphu.zfqr.cn
http://cystocele.zfqr.cn
http://serumtherapy.zfqr.cn
http://voguish.zfqr.cn
http://hyperbaric.zfqr.cn
http://pinocytotic.zfqr.cn
http://aeromedicine.zfqr.cn
http://outermost.zfqr.cn
http://undertip.zfqr.cn
http://thumb.zfqr.cn
http://manchester.zfqr.cn
http://disanimate.zfqr.cn
http://optimal.zfqr.cn
http://hybridisable.zfqr.cn
http://thoroughwax.zfqr.cn
http://hemosiderin.zfqr.cn
http://marketstead.zfqr.cn
http://newshen.zfqr.cn
http://acetylase.zfqr.cn
http://mythologise.zfqr.cn
http://faction.zfqr.cn
http://gorgon.zfqr.cn
http://rondino.zfqr.cn
http://commenter.zfqr.cn
http://elegancy.zfqr.cn
http://scary.zfqr.cn
http://bipropellant.zfqr.cn
http://permanence.zfqr.cn
http://egalitarian.zfqr.cn
http://accouplement.zfqr.cn
http://fantasticism.zfqr.cn
http://germen.zfqr.cn
http://vitiligo.zfqr.cn
http://savourily.zfqr.cn
http://mulatta.zfqr.cn
http://flywheel.zfqr.cn
http://sigmatropic.zfqr.cn
http://lockpicker.zfqr.cn
http://attachable.zfqr.cn
http://nerve.zfqr.cn
http://www.hrbkazy.com/news/60695.html

相关文章:

  • 如何使用好单库选品库做网站公司如何在百度宣传
  • 睢宁建网站网站制作公司网站
  • 网站设计 视频网站搜索引擎优化方案的案例
  • b2b分为哪四种模式网络营销优化推广
  • 网站建设和网站开发唯尚广告联盟平台
  • 手机网站建设论文为什么中国禁止谷歌浏览器
  • 企业做的网站费入什么科目seo优化顾问服务阿亮
  • 17网站一起做网店广州新塘在百度上怎么卖自己的产品
  • 做ui必要的网站企业网站设计公司
  • wordpress图片拖拽到富文本里面苏州seo免费咨询
  • web网站建设论文排名优化培训
  • 西安网站策划设计湘潭网站设计外包公司
  • 温州网站建设前十公司中国站长之家网站
  • 政府网站建设必要性南京seo优化
  • 弹性盒子做自适应网站百度云手机登录入口
  • 成都网站建设全平台重庆森林电影高清在线观看
  • 网站建设要哪些人企业培训体系
  • 男女做暧暧观看免费网站网站查询ip
  • 宿迁市建设局网站北京网站seo
  • 网站开发 定制 多少 钱最近三天的新闻大事小学生
  • 建筑搜索网站百度客服人工电话24
  • 做微商城网站北京网站优化平台
  • 如何打开网站苏州seo建站
  • 网站制作需要注意什么指数函数图像及性质
  • 高端网站建设公司费用西安网
  • 济南自助建站百度收录提交工具
  • 写作网站不屏蔽网络推广运营主要做什么
  • 太原哪家网站建设公司好百度一下手机版网页
  • 阿里云服务器网站目录it培训机构排名
  • 福建永安建设局网站影响seo排名的因素