《Python编程:从入门到实践》学习记录(17)项目-使用api

简介: 《Python编程:从入门到实践》学习记录(17)项目-使用api
  • 学习requests库的使用
  • 学习pygal绘图

import requests
import pygal
from pygal.style import LightColorizedStyle as LCS, LightenStyle as LS
def download_data(url: str):
    """下载api数据"""
    response = requests.get(url, timeout=None)
    print("响应状态码为: " + str(response.status_code))
    resp_json = response.json()
    items = resp_json["items"]
    rep_names, rep_star_count, rep_fork_count, rep_open_issue_count = [], [], [], []
    for item in items:
        rep_names.append(item["name"])
        rep_star_count.append(item["stargazers_count"])
        rep_fork_count.append(item["forks_count"])
        rep_open_issue_count.append(item["open_issues_count"])
    return {"rep_names": rep_names, "rep_star_count": rep_star_count, "forks_count": rep_fork_count,
            "open_issues_count": rep_open_issue_count}
def draw(json_date: dict):
    """绘图"""
    my_style = LS('#333366', base_style=LCS)
    # x轴文本旋转45度,展示图例
    chart = pygal.Bar(style=my_style, x_label_rotation=45, show_legend=True)
    chart.title = "Github上最受欢迎的python项目"
    chart.x_labels = json_date["rep_names"]
    chart.add("star数量", json_date["rep_star_count"])
    chart.add("fork数量", json_date["forks_count"])
    chart.add("open issue数量", json_date["open_issues_count"])
    chart.render_to_file('github-python.svg')
url = "https://api.github.com/search/repositories?q=language:python&sort=stars"
result = download_data(url)
draw(result)


  • 结果


image.png

相关文章
|
1天前
|
Python
【python】在pycharm创建一个新的项目
【python】在pycharm创建一个新的项目
4 0
|
2天前
|
存储 缓存 JavaScript
深入理解RESTful API设计原则与实践
【5月更文挑战第7天】在现代Web服务开发中,表述性状态传递(REST)是一种广泛采用的架构风格,用于构建可扩展的网络应用程序接口(APIs)。本文将探讨RESTful API的核心设计原则,并通过具体实例展示如何实现一个符合REST约束的后端服务。我们将讨论资源的识别、客户端-服务器通信模式、无状态性、以及统一接口的重要性,并探索如何使用当前的流行技术栈来实现这些概念。
|
2天前
|
Python
在Python中快捷引入缺失包的技巧和实践
在Python中快捷引入缺失包的技巧和实践
8 0
|
2天前
|
人工智能 Python
Python中的反对称矩阵:理论、应用与代码实践
Python中的反对称矩阵:理论、应用与代码实践
17 1
|
2天前
|
机器学习/深度学习 数据采集 数据可视化
Python众筹项目结果预测:优化后的随机森林分类器可视化|数据代码分享
Python众筹项目结果预测:优化后的随机森林分类器可视化|数据代码分享
|
2天前
|
存储 Python 容器
Python高级编程
Python集合包括可变的set和不可变的frozenset,用于存储无序、不重复的哈希元素。创建集合可使用{}或set(),如`my_set = {1, 2, 3, 4, 5}`。通过add()添加元素,remove()或discard()删除元素,如`my_set.remove(3)`。
|
2天前
|
JSON API 数据格式
淘宝商品评论数据获取:从API调用到应用实践
在电商的世界里,用户评论是洞察商品质量的一扇窗。淘宝,作为中国最大的在线购物平台,其海量的商品评论数据尤为宝贵。本文将带您走进淘宝商品评论数据的获取之旅,从API调用的基础知识到实际应用的代码示例,一探究竟。
|
3天前
|
机器学习/深度学习 数据采集 数据可视化
利用Python进行历史数据预测:从入门到实践的两个案例分析
利用Python进行历史数据预测:从入门到实践的两个案例分析
15 1
|
3天前
|
测试技术 Python
Python模块化方式编程实践
Python模块化编程提升代码质量,包括:定义专注单一任务的模块;使用`import`导入模块;封装函数和类,明确命名便于重用;避免全局变量降低耦合;使用文档字符串增强可读性;为每个模块写单元测试确保正确性;重用模块作为库;定期维护更新以适应Python新版本。遵循这些实践,可提高代码可读性、重用性和可维护性。
21 2
|
8天前
|
机器学习/深度学习 人工智能 算法
【Python 机器学习专栏】强化学习在游戏 AI 中的实践
【4月更文挑战第30天】强化学习在游戏AI中展现巨大潜力,通过与环境交互和奖励信号学习最优策略。适应性强,能自主探索,挖掘出惊人策略。应用包括策略、动作和竞速游戏,如AlphaGo。Python是实现强化学习的常用工具。尽管面临训练时间长和环境复杂性等挑战,但未来强化学习将与其他技术融合,推动游戏AI发展,创造更智能的游戏体验。