TypeError: 'Antwort' - Objekt hat kein Attribut '__getitem__'
Ich versuche einen Wert aus einem response-Objekt in ein dictionary, aber ich laufen in diesen Fehler, bin ich falsch im denken, die Sie __getitem__
ist allgemein verwendet für die Indizierung in den Klassen?
Hier ist der code:
import json
import requests
from requests.auth import HTTPBasicAuth
url = "http://public.coindaddy.io:4000/api/"
headers = {'content-type': 'application/json'}
auth = HTTPBasicAuth('rpc', '1234')
payload = {
"method": "get_running_info",
"params": {},
"jsonrpc": "2.0",
"id": 0,
}
response = requests.post(url, data=json.dumps(payload), headers=headers, auth=auth)
print("respone is: ", response['result'])
InformationsquelleAutor cyclopse87 | 2015-09-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das response-Objekt ist nicht ein Wörterbuch, können Sie die Indizierung auf.
Wenn die API gibt einen JSON-Antwort, müssen Sie die
Antwort.json()
Methode zu Dekodieren, um ein Python-Objekt:Beachten Sie, dass Sie nicht haben, um codieren die Anfrage JSON-Daten entweder; Sie konnte einfach die
json
argument derrequest.post()
Methode hier; auch dies setzt den Content-Type-header für Sie:Nicht zuletzt, wenn die API verwendet, JSONRPC, wie das Protokoll, das Sie verwenden könnte, die
jsonrpc-Anfragen
- Projekt proxy-Methode ruft für Sie:wenn ich könnte +2 ich würde wirklich zu schätzen diese Antwort-mate.
InformationsquelleAutor Martijn Pieters
Ändern Sie einfach Ihre Quell-code ein wenig wie diese :
Es ist wahr, dass response-Objekt allein nicht indiziert werden können, anstatt für diesen Zweck müssen Sie die Rückgabe-info in
json format
(in der Reihenfolge analysieren Antwort ) was können Sie tun, indemjson()
undHier um die richtige Zeichenfolge müssen Sie codieren es mit utf-8 (sonstige Weise Ihre Ausgabe wird so etwas wie dieses -u'LikeThis)
Sicher, dass ich auf diese Fehler heute werde ich hinzufügen, eine bessere Erklärung später.
InformationsquelleAutor Nikhil Sharma