398 Stimmen

Was ist der beste Weg, um eine JSON-Antwort aus der requests-Bibliothek zu parsen?

Ich verwende das Python requests Modul, um ein RESTful GET an einen Server zu senden, für den ich eine JSON-Antwort erhalte. Die JSON-Antwort besteht im Wesentlichen nur aus einer Liste von Listen.

Wie kann ich die Antwort am besten in ein natives Python-Objekt umwandeln, damit ich sie entweder durchlaufen oder mit pprint ausgeben kann?

704voto

pswaminathan Punkte 8646

Da du requests verwendest, solltest du die Methode json der Antwort verwenden.

import requests

response = requests.get(...)
data = response.json()

Es erkennt automatisch, welchen Decoder es verwenden soll.

432voto

Simeon Visser Punkte 115081

Sie können json.loads verwenden:

import json
import requests

response = requests.get(...)
json_data = json.loads(response.text)

Dies wandelt einen gegebenen String in ein Dictionary um, das es Ihnen ermöglicht, einfach auf Ihre JSON-Daten in Ihrem Code zuzugreifen.

Oder Sie können den hilfreichen Vorschlag von @Martijn und die am höchsten bewertete Antwort verwenden, response.json().

30voto

Amado Saladino Punkte 1520

Sie können die JSON-Antwort direkt als Dictionary verwenden:

import requests

res = requests.get('https://reqres.in/api/users?page=2')
print(f'Gesamtbenutzer: {res.json().get("total")}')

oder Sie können den JSON-Inhalt als Dictionary halten:

json_res = res.json()

und aus dieser json_res Dictionary-Variable können Sie beliebige Werte extrahieren

json_res.get('total')
json_res["total"]

Aufmerksamkeit Da dies ein Dictionary ist, sollten Sie auf die korrekte Schreibweise und die Groß- und Kleinschreibung achten, d.h. 'total' ist nicht dasselbe wie 'Total'

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X