Ich suche eine Python-Bibliothek für die für mich geeignete Github-APIv3.
Ich habe eine Bibliothek (python-github3) gefunden, die in den GH-API-Dokumenten erwähnt ist . Nachdem ich ein oder zwei Stunden in Ipython damit herumgespielt hatte, fand ich es wirklich nicht intuitiv, damit zu arbeiten. Ich habe noch ein bisschen nachgesehen und festgestellt, dass es eine ganze Reihe von Leuten gibt, die zumindest versuchen, eine solche Bibliothek zu schreiben. Die vielversprechenderen (auf einen Blick) sind PyGithub und ein weiterer Python-Github3 , der sich anscheinend vom ersten unterscheidet.
Bevor ich die nächsten Tage damit verbringe, Bibliothek für Bibliothek nacheinander auszuprobieren, wollte ich die SO-Community fragen, ob es eine akzeptierte, endgültige und offensichtliche Wahl für diese Bibliothek gibt.
Was mir an der ersten Bibliothek nicht gefallen hat, war die (für mich) unintuitive Möglichkeit, an Daten zu gelangen - einige Dinge erhalten Sie als Attribute, andere als Rückgabewert einer Methode, dieser Rückgabewert ist ein kompliziertes Objekt, das benötigt wird ausgelagert und durchlaufen werden usw.
In dieser Hinsicht sieht PyGithub auf den ersten Blick attraktiver aus - gehen Sie eine Objekthierarchie klar durch und gelangen Sie dann zu dem Attribut, das Folgendes enthält:
for repo in g.get_user().get_repos():
print repo.name
Also, irgendwelche Perlen der Weisheit zu teilen? Ich weiß, dass ich nicht genug Fähigkeiten habe, um die Qualität der Bibliothek schnell beurteilen zu können. Deshalb wende ich mich an die SO-Community.
edit: fwiw, ich habe PyGithub benutzt . Es funktioniert gut und der Autor ist sehr empfänglich für Feedback und Fehlerberichte. :-)
Antworten:
Da Sie erwähnt haben, dass Sie ein Python-Programmierer für Anfänger sind, würde ich Ihnen empfehlen, zuerst zu versuchen, die JSON-API ohne Github-Bibliothek zu verwenden. Es ist wirklich nicht so schwierig und wird Ihnen viel später in Ihrem Programmierleben helfen, da der gleiche Ansatz auf jede JSON-API angewendet werden kann. Besonders wenn es so aussieht, als würde das Ausprobieren von Bibliotheken Tage dauern.
Ich sage nicht, dass einige Bibliotheken nicht einfacher zu verwenden sind, ich sage nur, dass sich der kleine zusätzliche Aufwand für die direkte Verwendung der API auf lange Sicht lohnen könnte. Zumindest hilft es Ihnen zu verstehen, warum einige dieser Bibliotheken "unintuitiv" erscheinen (wie Sie sagten).
Einfaches Beispiel zum Abrufen der Erstellungszeit des Django-Repositorys:
Dies verwendet die beliebte Anforderungsbibliothek . In Ihrem Code müssen Sie natürlich auch die Fehlerfälle behandeln.
Wenn Sie Zugriff mit Authentifizierung benötigen, ist dies etwas komplexer.
quelle
requests
, die ich vorher nicht angetroffen hatte. Sieht gut aus.r.content
nicht seinr.text
(' Antwort' -Objekt hat kein Attribut' Text ')r.text
sollte funktionieren, wenn die Antwort JSON ist.r.content
gibt die Bytes direkt zurück, ohne sie zu dekodieren. Die Anforderungsbibliothek scheint intern(r.text or r.content)
Phrasen zu verwenden. Vielleicht sollten Sie das auch tun. Ich bin mir nicht sicher, warum Sie dietext
Immobilie nicht sehen können .AttributeError: 'Response' object has no attribute 'text'
json.loads(r.content or r.text)
in der bearbeiteten sage , funktioniert es übrigens.Am Ende habe ich PyGithub verwendet . Es funktioniert gut und der Autor ist sehr empfänglich für Feedback und Fehlerberichte. :-)
(Von meiner Bearbeitung an die ursprüngliche Frage angepasst, um die Sichtbarkeit zu verbessern)
quelle
Die Dokumentation ist für PyGitHub schrecklich, aber das Produkt ist großartig. Hier ist ein kurzes Beispiel zum tatsächlichen Abrufen einer Datei, zum Ändern mit einem neuen Kommentar am Anfang der Datei und zum Zurückschreiben
quelle
Libsaas ist ideal für Anfänger. Es hat eine schöne Dokumentation und ist einfach zu bedienen, siehe Beispiel . Fühlen Sie sich frei, einen Beitrag zu leisten.
quelle