2016-08-11 3 views
-1

Ich bin sehr neu zu Python und ich versuche, eine grundlegende API-Anfrage mit der Anforderungen Bibliothek zu tun, aber ich habe Probleme beim Lesen einer Liste in der zurückgegebenen Körper.Aus der Liste in Contest lesen

Der Körper meiner Antwort sieht wie folgt aus:

{ 
    "files": [{ 
     "url": "http://someurl.json", 
     "lastModified": 1470924180000 
    }] 
} 

Mit meinem Code bekomme ich die in „Dateien“ enthaltenen Daten, aber ich kann nicht herausfinden, wie die Daten in „url“ conatained zu bekommen .
Mein Code:

response = requests.get(url) 
data = response.json() 
print(data["files"]) 

Das gibt:

[{'url': 'http://myurl.json', 'lastModified': 1470928985000}] 

Wie kann ich die URL und lastModified speichern in Variablen?

Antwort

1

einfach mit:

url = data['files'][0]['url'] 
last_modified = data['files'][0]['lastModified'] 

Ihre Daten ist ein Wörterbuch, das eine list von Wörterbüchern für die "files" Schlüssel enthält. Um den ersten Eintrag von files zu erhalten, müssen Sie die Liste mit data['files'][0] indizieren.

Danach ist data['files'][0] ein Wörterbuch, auf das Sie wieder mit dem Schlüsselnamen wie erforderlich zugreifen können, in diesem Fall 'url' und 'lastModified'.

+0

Danke! Das erklärt, warum es nicht funktionierte, als ich mit Daten versuchte ['files'] ['url'] – user45706

+0

@ user45706 Genau, beachte, wie '' files ''strukturiert ist, es hat eine eckige Klammer zuerst' ['a Liste, dann eine geschweifte Klammer '{', die ein Wörterbuch anzeigt. Da sich das Wörterbuch in der Liste befindet, müssen Sie die Liste indizieren, um sie zu erhalten. –