gpt4 book ai didi

python - 用户帐户的 Github API 调用

转载 作者:行者123 更新时间:2023-12-04 21:04:43 25 4
gpt4 key购买 nike

嗨,我正在尝试从 Github API 获取用户的数据、他们使用的编程语言、他们的存储库以及他们所连接的关注者/关注者及其数量。

我已经通读了文档,但没有找到任何特定于我需要的查询的内容。

目前,我使用这个查询来调用 https://api.github.com/search/users?q=location:uk&sort=stars&order=desc&page=1&per_page=100
但是,这会返回与我要实现的目标无关的帐户名称、网址和其他内容。我正在 Jupyter 笔记本上使用 json 和 python 请求分析这些数据。

任何人都可以分享他们的意见,谢谢。

最佳答案

您可以使用 GraphQL Api v4能够从用户那里请求您想要的特定信息。在以下查询中,您使用 location:uk 搜索用户并提取他们的登录名、姓名、关注者、关注者数量、存储库、存储库数量、语言等...

{
search(query: "location:uk", type: USER, first: 100) {
userCount
pageInfo {
hasNextPage
endCursor
}
nodes {
... on User {
login
name
location
repositories(first: 10) {
totalCount
nodes {
languages(first: 2) {
nodes {
name
}
}
name
}
}
followers(first: 10) {
totalCount
nodes {
login
}
}
}
}
}
}

Try it in the explorer

对于分页,使用 first: 100请求前 100 件商品并使用 after: <cursor_value>请求下一页,光标值是上一页的最后一个光标,例如 pageInfo.endCursor的值在上一个查询中。

在 Python 中,这将是:

import json
import requests

access_token = "YOUR_ACCESS_TOKEN"

query = """
{
search(query: "location:uk", type: USER, first: 100) {
userCount
pageInfo {
hasNextPage
endCursor
}
nodes {
... on User {
login
name
location
repositories(first: 10) {
totalCount
nodes {
languages(first: 2) {
nodes {
name
}
}
name
}
}
followers(first: 10) {
totalCount
nodes {
login
}
}
}
}
}
}"""

data = {'query': query.replace('\n', ' ')}
headers = {'Authorization': 'token ' + access_token, 'Content-Type': 'application/json'}
r = requests.post('https://api.github.com/graphql', headers=headers, json=data)
print(json.loads(r.text))

关于python - 用户帐户的 Github API 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49275824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com