我正在尝试在python中构建github信息,我希望脚本抓住这些东西:
"stargazers_count": 2, << i need the number updated
"watchers_count": 2, << i need the number updated
"forks": 1, << i need the number updated
例如:https://api.github.com/repos/toddmotto/angular-1-5-components-app
import requests
r = requests.get('https://api.github.com/repos/toddmotto/angular-1-5-components-app')
print(r.json())
我需要结果像
stargazers_count:电话号码
watchers_count:电话号码
叉子:数字
答案 0 :(得分:0)
使用键提取所需的值。
例如:
import requests
r = requests.get('https://api.github.com/repos/toddmotto/angular-1-5-components-app').json()
print(r["stargazers_count"])
print(r["watchers_count"])
print(r["forks"])
输出:
573
573
200
答案 1 :(得分:0)
r.json()为您提供了python字典。
import requests
r = requests.get('https://api.github.com/repos/toddmotto/angular-1-5-components-app')
resp = r.json()
print(r['stargazers_count']) #573
print(r['watchers_count']) #573
print(r['forks']) #200
答案 2 :(得分:0)
您只需将json键放在列表中,然后在列表中进行迭代,以选择所需的值。
from requests import get
keys = [
"stargazers_count",
"watchers_count",
"forks"
]
response = get('https://api.github.com/repos/toddmotto/angular-1-5-components-app').json()
for key in keys:
print('{key}:\t{value}'.format(
key=key,
value=response[key]
)
)
如果需要所有键,请使用response.keys()
# prints out all keys
for key in response.keys():
print('{key}:\t{value}'.format(
key=key,
value=response[key]
)
)
答案 3 :(得分:0)
在Python中使用请求库
首先,让我们向您介绍请求。
什么是请求资源?
Requests是使用Python编写的Apache2许可HTTP库。它被设计用于人类与语言交互。这意味着您不必手动向URL添加查询字符串,也无需对POST数据进行表单编码。不用担心,这对您没有意义。它将在适当的时候。
请求可以做什么?
请求将允许您使用Python发送HTTP / 1.1请求。使用它,您可以通过简单的Python库添加诸如标题,表单数据,多部分文件和参数之类的内容。它还允许您以相同的方式访问Python的响应数据。
在编程中,库是程序可以使用的例程,函数和操作的集合或预先配置的选择。这些元素通常称为模块,并以对象格式存储。
库很重要,因为您可以加载模块并利用其提供的所有功能,而无需显式链接到依赖它们的每个程序。它们确实是独立的,因此您可以使用它们构建自己的程序,但是它们仍然与其他程序分开。
将模块视为一种代码模板。
重申一下,“请求”是一个Python库。
导入请求模块
要在Python中使用Requests库,必须导入适当的模块。您只需在脚本的开头添加以下代码即可完成此操作:
import requests
当然,要执行上述任何一项操作(安装随附的库),您需要先下载必要的程序包,并使解释器可以访问它。
提出请求
当您对网站或门户网站执行ping操作以获取信息时,这称为发出请求。这正是Requests库的设计目的。
要获取网页,您需要执行以下操作:
r = requests.get('https://api.github.com/repos/toddmotto/angular-1-5-components-app')
finalResult = r.json()
print "stargazers_count",finalresult["stargazers_count"]
答案 4 :(得分:0)
创建一个函数,以照顾请求的属性的不同组合。
还要注意失败。
import requests
import pprint
def get_github_activity_attributes(url, attributes=[]):
""" Do http call and return the full response as dict or a subset of the response """
r = requests.get(url)
if r.status_code == 200:
if not attributes:
# The caller asked to return all attributes
return True, r.json()
else:
# The caller asked for subset of the attributes (assuming first level attributes only)
data = r.json()
return True, {attr: data[attr] for attr in attributes}
else:
return False, 'Request failed with status code {}.'.format(r.status_code)
ok, all_attributes = get_github_activity_attributes('https://api.github.com/repos/toddmotto/angular-1-5-components-app')
if ok:
print('All attributes below')
pprint.pprint(all_attributes)
ok, few_attributes = get_github_activity_attributes('https://api.github.com/repos/toddmotto/angular-1-5-components-app',
['forks', 'watchers_count'])
if ok:
print('Few attributes below')
pprint.pprint(few_attributes)