import requests # 执行API调用并存储响应 url = ‘https://api.github.com/search/repositories?q=language:python&sort=stars‘ headers = {‘Accept‘: ‘application/vnd.github.v3+json‘} r = requests.get(url, headers=headers) print(f"Status code: {r.status_code}") # 将APi相应赋格给一个变量 response_dict = r.json() print(f"Total repositories: {response_dict[‘total_count‘]}") # 搜索有关仓库的信息 repo_dicts = response_dict[‘items‘] print(f"Repositories returned: {len(repo_dicts)}") print("\nSelected information about each repository:") for repo_dict in repo_dicts: print(f"Name: {repo_dict[‘name‘]}") print(f"Owner: {repo_dict[‘owner‘][‘login‘]}") print(f"Stars: {repo_dict[‘stargazers_count‘]}") print(f"Repository: {repo_dict[‘html_url‘]}") print(f"Created: {repo_dict[‘created_at‘]}") print(f"Updated: {repo_dict[‘updated_at‘]}") print(f"Description: {repo_dict[‘description‘]}")
import requests from plotly.graph_objs import Bar from plotly import offline # 执行API调用并存储响应 url = ‘https://api.github.com/search/repositories?q=language:python&sort=stars‘ headers = {‘Accept‘: ‘application/vnd.github.v3+json‘} r = requests.get(url, headers=headers) print(f"Status code: {r.status_code}") # 处理结果 response_dict = r.json() repo_dicts = response_dict[‘items‘] repo_links, stars, labels = [], [], [] for repo_dict in repo_dicts: repo_name = repo_dict[‘name‘] repo_url = repo_dict[‘html_url‘] repo_link = f"<a href=‘{repo_url}‘>{repo_name}</a>" repo_links.append(repo_link) stars.append(repo_dict[‘stargazers_count‘]) owner = repo_dict[‘owner‘][‘login‘] description = repo_dict[‘description‘] label = f"{owner}<br />{description}" labels.append(label) # 可视化 data = [{ ‘type‘: ‘bar‘, ‘x‘: repo_links, ‘y‘: stars, ‘hovertext‘: labels, ‘marker‘: { ‘color‘: ‘rgb(60, 100, 150)‘, ‘line‘: {‘width‘: 1.5, ‘color‘: ‘rgb(25, 25, 25)‘} }, ‘opacity‘: 0.6, }] my_layout = { ‘title‘: ‘Most-Starred Python Projects on GitHub‘, ‘titlefont‘: {‘size‘: 28}, ‘xaxis‘: { ‘title‘: ‘Repository‘, ‘titlefont‘: {‘size‘: 24}, ‘tickfont‘: {‘size‘: 14}, }, ‘yaxis‘: { ‘title‘: ‘Stars‘, ‘titlefont‘: {‘size‘: 24}, ‘tickfont‘: {‘size‘: 14}, }, } fig = {‘data‘: data, ‘layout‘: my_layout} offline.plot(fig, filename=‘python_repos.html‘)
import requests import json # 执行API调用并存储响应 url = ‘https://hacker-news.firebaseio.com/v0/item/19155826.json‘ r = requests.get(url) print(f"Status code: {r.status_code}") # 探索数据结构 response_dict = r.json() readable_file = ‘data/readable_hn_data.json‘ with open(readable_file, ‘w‘) as f: json.dump(response_dict, f, indent=4)
from operator import itemgetter import requests # 执行API调用并存储响应 url = ‘https://hacker-news.firebaseio.com/v0/topstories.json‘ r = requests.get(url) print(f"Status code: {r.status_code}") # 处理有关每篇文章的信息 submission_ids = r.json() submission_dicts = [] for submission_id in submission_ids[:10]: # 对于每篇文章有执行一个API调用 url = f"https://hacker-news.firebaseio.com/v0/item/{submission_id}.json" r = requests.get(url) print(f"id: {submission_id}\tstatus: {r.status_code}") response_dict = r.json() # 对于每篇文章都创建一个字典 submission_dict = { ‘title‘: response_dict[‘title‘], ‘hn_link‘: f"http://news.ycombinator.com/item?id={submission_id}", ‘comments‘: response_dict[‘descendants‘], } submission_dicts.append(submission_dict) submission_dicts = sorted(submission_dicts, key=itemgetter(‘comments‘), reverse=True) for submission_dict in submission_dicts: print(f"\nTitle: {submission_dict[‘title‘]}") print(f"Discussion link: {submission_dict[‘hn_link‘]}") print(f"Comments: {submission_dict[‘comments‘]}")