2

github ユーザーとその場所を取得したい。ユーザーのリストを提供できる Github apI(GET /users) があることは知っています。現在、 PyGithubを使用して github にアクセスしていますが、このライブラリにはこの API が実装されていないようです。github API ライブラリを使用して github ユーザーとその場所を取得する方法を教えてください。

EDIT1: 次のコードを更新しました。しかし、いくつかの方法でメール ID と場所を取得できません。

import github3
from datetime import datetime

def main():
        g = github3.login(username="rakeshcusat", password="mypassword")
    for user in g.iter_emails():
        print user
    current_time = datetime.now()   
    fhandler = open("githubuser_"+current_time.strftime("%d-%m-%y-%H:%M:%S"), "w")

    for user in g.iter_all_users():
            fhandler.write(" user: {0}, email: {1}, location: {2}\n".format(user, user.email, user.location))
            #fhandler.flush()

    fhandler.close()        

if __name__ == "__main__":
    main()

サンプル出力

 user: andywatts, email: None, location: 
 user: mueller, email: None, location: 
 user: cp, email: None, location: 
 user: davea, email: None, location: 
 user: vrieskist, email: None, location: 
4

1 に答える 1

2

github3ライブラリは、すべてのユーザーに対する反復をサポートしています。

import github3

for user in github3.iter_all_users():
    user.refresh()
    print user.location

github3.iter_all_users()Userオブジェクトを生成します。

エンドポイントはユーザー情報の小さなサブセットのみを返し、場所は含まれない.refresh()ため、ここで呼び出しが必要です。これには別の API リクエストが必要になるため、スクリプトのペースを調整して、GitHub のレート制限に達しないようにすることをお勧めします。/users

の将来のバージョンgithub3(0.7.0 よりも新しい) では、ページ (バッチ) サイズを指定して、作成する必要がある API 要求の数を減らすサポートが追加されます。GitHub API はデフォルトで 1 ページあたり 30 件の結果に設定されていますが、代わりに1 ページあたり最大 100 件の結果を読み込むことができます。

for user in github3.iter_all_users(per_page=100):
    user.refresh()
    print user.location
于 2013-06-15T23:09:12.633 に答える