Website-Suche

So verwenden Sie JSON-API-Daten in Python


Objektiv

Nutzen Sie eine JSON-API in Python.

Ausschüttungen

Dies funktioniert auf jeder Linux-Distribution.

Anforderungen

Eine funktionierende Linux-Installation mit Python.

Schwierigkeit

Leicht

Konventionen

  • # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder mit dem Befehl sudo
  • $ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden

Einleitung

Einer der Hauptgründe, warum Sie mit JSON in Python arbeiten möchten, ist die Nutzung von APIs. Es gibt Hunderte von hervorragenden öffentlichen APIs, die in Ihrer Anwendung verwendet werden können. Sogar große Akteure im Internet, wie Facebook und Twitter, stellen APIs zur Verfügung, mit denen Sie zusammenarbeiten können.

Sie können ganze Anwendungen um API-Daten herum erstellen, einschließlich Webanwendungen, die diese Daten auf bequeme Weise aggregieren, bearbeiten und anzeigen.

Einrichten einer Datei

Bevor Sie mit APIs arbeiten, müssen Sie eine Python-Datei einrichten. Das ist viel einfacher als die Arbeit im Dolmetscher. Beginnen Sie mit dem Importieren des JSON-Moduls.

import json

Sie benötigen urllib3. Damit können Sie mit Python auf eine URL zugreifen.

import urllib3

Öffnen Sie die URL

Es gibt zwar eine Menge großartiger APIs im Internet, aber die meisten von ihnen erfordern, dass Sie sich anmelden, um einen API-Schlüssel zu erhalten. In diesem Leitfaden geht es nicht darum oder um die Verwendung einer bestimmten API. Die OpenDota-API bietet Zugriff auf eine Vielzahl von Daten, die sich auf das beliebte MoBA DoTA2 beziehen, ohne dass Sie sich anmelden oder einen Schlüssel anfordern müssen. Falls Sie es noch nicht wussten, es ist für Linux verfügbar. Das ist die API, die in diesem Leitfaden verwendet wird.

Die Dokumentation für die gesamte API finden Sie unter https://docs.opendota.com, aber in dieser Anleitung werden die https://api.opendota.com/api/heroes Heroes-Daten verwendet.

Beginnen Sie mit der Erstellung eines PoolManager()-Objekts mit urllib3. Es ist dieses Objekt, das Sie verwenden können, um Anfragen an eine Website zu stellen.

http = urllib3.PoolManager()

Stellen Sie eine GET-Anforderung mit dem http-Objekt, das Sie gerade für die DoTA-API erstellt haben.

heroes = http.request('GET', 'https://api.opendota.com/api/heroes')

Analysieren des JSON

Versuchen Sie, die Heldenvariable auszudrucken, die Sie gerade erstellt haben.

print(heroes)

Nicht das, was Sie erwartet haben? Es handelt sich immer noch um ein Anforderungsobjekt, das über mehr Daten verfügt, als Sie benötigen. Versuchen Sie, heroes.data auszudrucken

print(heroes.data)

Das sieht genauer aus, ist aber noch nicht ganz da. Dekodieren Sie die Daten in UTF-8.

print(heroes.data.decode('UTF-8'))

Das ist JSON. Sie können dies mit dem JSON-Modul analysieren.

heroes_dict = json.loads(heroes.data.decode('UTF-8'))
print(heroes_dict)

Arbeiten Sie mit den Daten

Sie verfügen über ein Python-Wörterbuch, das alle Daten aus der API enthält. Sie können diese Daten nun nach Belieben verwenden. Versuchen Sie, darüber zu iterieren.

for hero in heroes:
    print(heroes['localized_name'])

Deine Schleife druckt den Namen jedes Helden in DoTA2 aus. Sie können aus dem Wörterbuch ersehen, dass es tonnenweise mehr Daten gibt, aber Sie wissen, wie Sie darauf zugreifen können.

Abschließende Gedanken

Der Weg dorthin war nicht ganz direkt, aber er hat es auf jeden Fall geschafft. Wenn Sie dies mit API-Schlüsseln tun, ändert sich nur die URL-Struktur. Alles andere sollte durchgehend gleich bleiben. Sie sind jetzt in der Lage, auf API-Daten aus Ihren Python-Programmen zuzugreifen.

Übung

Wählen Sie eine API aus https://github.com/toddmotto/public-apis aus, und konvertieren Sie sie in ein Python-Wörterbuch. Iterieren Sie darüber, und geben Sie die Werte von mindestens zwei Schlüsseln aus.

Verwandte Artikel: