2016-05-04 6 views
-1

Ich verwende Python 2.7 \ LinuxPython Wörterbuch -Index Nummerierung ist jedes Mal anders

ich api Ergebnis haben (siehe unten):

{"id":"137","iv":0, 
"components":[{"id":"928","type":"IDUGW","creation_date":"2016-05-04 08:10:38.0","update_date":"2016-05-04 08:10:38.0","unit_id":"137","serial_number":"00000000501C8349"}, 
{"id":"927","type":"IDU","creation_date":"2016-05-04 08:10:37.0","update_date":"2016-05-04 08:10:37.0","unit_id":"137","serial_number":"00000000501C8268"}, 
{"id":"930","type":"Battery","creation_date":"2016-05-04 08:10:40.0","update_date":"2016-05-04 08:10:40.0","unit_id":"137","serial_number":"00000000501C802A"} 
,{"id":"929","type":"Panel","creation_date":"2016-05-04 08:10:39.0","update_date":"2016-05-04 08:10:39.0","unit_id":"137","serial_number":"00000000501C810B"}], 
"creation_date":"2016-05-04 08:10:41.0", 
"update_date":"2016-05-04 08:10:41.0", 
"serial_number":"0011", 
"phone_number":"972528745028", 
"owner_phone":"9720545555554"} 

, wenn ich es richtig verstehe, habe ich Wörterbuch innen Wörterbuch (zweite Zeile "Komponente" ist ein anderes Wörterbuch, das 4 Schlüssel \ Werte darin hat)

Ich versuche zu überprüfen, ob im Wörterbuch der "Typ" gleich ist, Parameter ich gebe.

Code:

if (MyDictionary [u'components '] [0] [u'type'] <> lRestParams [ 'type4']):

i 4 Index (0,1 , 2,3)

manchmal das "if" passieren, und manchmal wird der Index geändert (wenn alles wieder aufzubauen) und es nicht

wie kann ich type4 zu MyDictionary [u'components'] [eines vergleichen index] [u'type '] Außerdem muss ich danach vergleichen, dass die va lue des Schlüssels = value4 so bedeutet es, dass, wenn wir den Index x als Schlüssel überprüfen und Wert sollte dort überprüft werden.

Hoffnung nicht zu kompliziert

Vielen Dank im Voraus

Ohad

+0

Der Wert für den Schlüssel "Komponente" ist kein Wörterbuch. Es ist eine Liste mit vier Wörterbüchern. – acdr

Antwort

0

Statt die Indexnummer des Gebens, Sie können die Komponentenwerte Schleife durch den Vergleich zu tun.

for keys in data['components']: 
    if keys['type'] == "IDUGW": 
     print "matched" 
+0

Ich glaube nicht, dass es genug ist. Ich brauche danach, um den Wert dieses Schlüssels zu vergleichen. – ohad

+0

Haben Sie nicht .. haben Sie es versucht? –

+0

Ich muss JSON mit meinem type.let vergleichen sagen, dass ich es getan habe. Dann muss ich die Seriennummer in JSON mit meiner Seriennummer vergleichen. Aber ich muss wissen, dass die Seriennummer x der Wert des Typs x ist (dh orange = 10, apple = 5) -wenn ich diese 2 Keis und Werte gefunden habe, könnten sie orange erscheinen = 5, Apfel = 10). Ich brauche im selben Wörterbuch (habe insgesamt 4) Typ und Seriennummer, wie es sollte sei und tippe nicht in Diktat 1 und es serial numbrt in Wörterbuch 3 zum Beispiel – ohad

Verwandte Themen