我试图使用Python Requests库从GitHub API获取所有用户信息。这是我的代码:
import requests
import json
url = 'https://api.github.com/users'
token = "my_token"
headers = {'Authorization': 'token %s' % token}
r = requests.get(url, headers=headers)
users = r.json()
with open('users.json', 'w') as outfile:
json.dump(users, outfile)
我现在可以将用户的第一页转储到json文件中。我也可以找到' next' page' s url:
next_url = r.links['next'].get('url')
r2 = requests.get(next_url, headers=headers)
users2 = r2.json()
由于我还不知道有多少页面,我怎样才能将第二页,第三页...添加到' users.json'尽可能快地按顺序循环?
谢谢!
答案 0 :(得分:0)
将您从requests
查询获得的数据附加到列表中,然后继续查看下一个查询。
获得所需的所有数据后,继续尝试将数据连接到文件或对象中。您也可以使用threading
并行执行多个查询,但很可能会对api进行速率限制。
答案 1 :(得分:0)
首先,你需要在'a'模式下打开文件,否则后续写将覆盖所有内容
import requests
import json
url = 'https://api.github.com/users'
token = "my_token"
headers = {'Authorization': 'token %s' % token}
outfile = open('users.json', 'a')
while True:
r = requests.get(url, headers=headers)
users = r.json()
json.dump(users, outfile)
url = r.links['next'].get('url')
# I don't know what Github return in case there is no more users, so you need to double check by yourself
if url == '':
break
outfile.close()