88

私に適した Github APIv3 の Python ライブラリを探しています。

GH API docsで言及されている1 つのライブラリ(python-github3)を見つけました。ipython で 1 時間か 2 時間遊んだ後、探索/操作が非常に直感的ではないことがわかりました。もう少し調べてみたところ、少なくともそのようなライブラリを作成しようとしている人がかなりの数いることがわかりました。(一目で) 有望に見えるのはPyGithub別の python-github3で、明らかに最初のものとは異なります。

次の日、ライブラリを次から次へと連続して試す前に、そのライブラリに受け入れられ、決定的で、明白な選択肢があるかどうかを SO コミュニティに尋ねたいと思いました。

最初のライブラリについて私が気に入らなかったのは、データを取得する (私にとって) 非直感的な方法でした。属性として取得するものもあれば、メソッドの戻り値として取得するものもあり、その戻り値は複雑なオブジェクトである必要があります。ページングされ、繰り返されるなど。

その点で、PyGithub は一見するとより魅力的に見えます。オブジェクト階層を明確に掘り下げて、必要なものを含む属性にたどり着きます。

for repo in g.get_user().get_repos(): print repo.name

それで、共有する知恵の真珠はありますか?ライブラリの品質をすぐに判断できるほどのスキルを持っていないことはわかっています。そのため、SO コミュニティに注目しています。

編集:fwiw、私はPyGithubを使用してしまいました。それはうまく機能し、作者はフィードバックやバグレポートを本当に受け入れてくれます. :-)

4

3 に答える 3

80

あなたは初心者の Python プログラマーだとおっしゃっていたので、まず Github ライブラリを使わずに JSON API を使ってみることをお勧めします。それはそれほど難しいことではなく、同じアプローチを任意の JSON API に適用できるため、プログラミングの後半で大いに役立ちます。特にライブラリを試すのに何日もかかると思われる場合.

一部のライブラリが使いにくいと言っているのではなく、API を直接使用するためのわずかな追加の努力が、長期的には価値があるかもしれないと言っているだけです。少なくとも、これらのライブラリの一部が「直感的ではない」ように見える理由を理解するのに役立ちます(あなたが言ったように)。

django リポジトリの作成時間を取得する簡単な例:

import requests
import json
r = requests.get('https://api.github.com/repos/django/django')
if(r.ok):
    repoItem = json.loads(r.text or r.content)
    print "Django repository created: " + repoItem['created_at']

これは、一般的なリクエスト ライブラリを使用しています。コードでは、当然、エラー ケースも処理する必要があります。

認証によるアクセスが必要な場合は、もう少し複雑になります。

于 2012-05-16T20:37:14.550 に答える
33

結局、PyGithubを使用することになりました。それはうまく機能し、作者はフィードバックやバグレポートを本当に受け入れてくれます. :-)

(見やすくするために、私の編集から元の質問への適応)

于 2014-01-13T10:15:38.623 に答える