Python3 对象存储到本地与恢复演示

       在做网络请求实验的时候,假如请求的数据量较大,每次修改代码,再潇洒的啪一下,半天结果才出来,且不说浪费流量,多次的长时间的等待也会令我们感到疲惫,所以我在想能不能将请求到的数据先存到文件里,下次运行再从文件里恢复,这样就快多了,好了也不多说了,直接上菜:

import requests
import pygal
import os
from pygal.style import LightColorizedStyle as LCS,LightenStyle as LS
# import json
import simple_pickle.utils as spick

filename='my_save'

# 将请求的数据本地化存储
if os.path.exists(filename) ==False:
    url='https://api.github.com/search/repositories?q=language:python&sort=stars'
    r=requests.get(url)
    spick.write_pickle(r, filename)
    print('First Request...')
else:
    r = spick.read_pickle(filename)
    print('Read from local.')

print('Status code:',r.status_code)

#将API响应存储在一个变量中
response_dict=r.json()
# print(response_dict.keys())
print('Total repositories:',response_dict['total_count'])

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

#研究第一个仓库
repo_dict=repo_dicts[0]
# print('\nKeys:',len(repo_dict))
# for key in sorted(repo_dict.keys()):
#     print(key)

# print('\nSelected information about first repository:')
# for repo_dict in repo_dicts:
#     print('Name:',repo_dict['name'])
#     print('Owner:',repo_dict['owner']['login'])
#     print('Stars:',repo_dict['stargazers_count'])
#     print('Repository:',repo_dict['html_url'])
#     print('Created:',repo_dict['created_at'])
#     print('Updated:',repo_dict['updated_at'])
#     print('Description:',repo_dict['description'])
#     print()

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)
chart=pygal.Bar(style=my_style,x_label_rotation=45,show_legend=False)
chart.title='Most-Starred Python Projects on Github'
chart.x_labels=names

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值