0

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 ファイルにダンプできます。「次の」ページの URL もわかります。

next_url = r.links['next'].get('url')
r2 = requests.get(next_url, headers=headers)
users2 = r2.json()

まだページ数がわからないので、できるだけ早く 'users.json' に 2 番目、3 番目のページを連続して追加するにはどうすればよいですか?

ありがとう!

4

2 に答える 2

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()
于 2015-06-09T23:23:02.663 に答える