2016-05-16 9 views
0

Also versuche ich hier Python zu lernen und würde mich über jede Hilfe freuen, die ihr mir geben könnt. Ich habe ein bisschen Code geschrieben, der eine meiner Lieblingswebseiten nach einigen Informationen fragt, und der API-Aufruf gibt eine Antwort in einem Wörterbuch zurück. In diesem Wörterbuch ist eine Liste. In dieser Liste ist ein Wörterbuch. Das scheint mir verrückt, aber zur Hölle, ich bin ein Neuling.Wie liest und weist man Variablen aus einer API-Rückgabe zu, die als Dictionary-List-Dictionary formatiert ist?

Ich versuche, die Antworten Variablen zuzuweisen, aber immer verschiedene Fehlermeldungen je nachdem, wie ich meine {}, [] oder() schreibe. Trotzdem kann ich es nicht zur Arbeit bringen. Wie lese ich diese Rückkehr? Danke im Voraus.

{ 

      "answer": 
       [{"widgets":16, 
        "widgets_available":16, 
        "widgets_missing":7, 
        "widget_flatprice":"156", 
        "widget_averages":15, 
        "widget_cost":125, 
        "widget_profit":"31", 
        "widget":"90.59"}], 
      "result":true 

} 

Bearbeitet, weil ich den falschen Beispielcode einfügte.

+0

Sie müssen ein aktuelles Beispiel Ihres Codes anzeigen. Der eingefügte Code ist nicht gültig Python; es scheint irgendwo eine schließende Klammer zu fehlen. Außerdem sind in der von Ihnen angezeigten Datenstruktur keine Listen vorhanden. – BrenBarn

+0

Ja, ich habe einen kleinen Auslöser, der glücklich auf meinen Schnitt und Paste ist. Es sollte jetzt behoben werden. – Danimal

+0

Welche Fehlermeldungen erhalten Sie? Ich nehme an, die API gibt JSON zurück, kein Python-Wörterbuch - richtig? – Nicarus

Antwort

0

Sie benötigen Code zu erhalten, aber der de-facto-Weg, dies zu tun, ist durch die requests Modul verwenden, wie folgt aus:

import requests 

url = 'http://www.example.com/api/v1/something' 
r = requests.get(url) 
data = r.json() # converts the returned json into a Python dictionary 

for item in data['answer']: 
    print(item['widgets']) 
0

Unter der Annahme, dass Sie nicht die requests Bibliothek verwenden (siehe Burhan Antwort), würden Sie das json Modul wie so verwenden:

data = '{"answer": 
      [{"widgets":16, 
      "widgets_available":16, 
      "widgets_missing":7, 
      "widget_flatprice":"156", 
      "widget_averages":15, 
      "widget_cost":125, 
      "widget_profit":"31", 
      "widget":"90.59"}], 
     "result":true}' 

import json 

data = json.loads(data) 

# Now you can use it as you wish 
data['answer'] # and so on... 
0

Zuerst will ich erwähnen, dass ein Wörterbuch Wert von [ „key“] und nicht {} verwenden müssen zuzugreifen. siehe hier eine Python dictionary Syntax.

Hier ist ein Schritt für Schritt-Anleitung, wie man eine ähnliche Datenstruktur aufzubauen und Zugang:

Zuerst die Haupt-Wörterbuch erstellen:

t1["a"] # it'll return a 0 
:

t1 = {"a":0, "b":1} 

Sie jedes Element von zugreifen können

Jetzt können wir die interne Liste hinzufügen:

t1["a"] = ["x",7,3.14] 

und greifen Sie mit: Jetzt

t1["a"][2] # it'll return 3.14 

das interne Wörterbuch zu erstellen:

t1["a"][2] = {'w1':7,'w2':8,'w3':9} 

und Zugang:

t1["a"][2]['w3'] # it'll return 9 

Hoffe, dass es Ihnen geholfen.

Verwandte Themen