2016-03-24 13 views
1

Ich kann nicht in der Lage sein, herauszufinden, wie alle die Liste in diesem Json-Objekt extra. Der Fehler, den ich bekomme, ist ValueError: too many values to unpack (expected 2).So extrahieren Sie alle außer der Liste in einem dict

data = { k:v for (k, v) in organization_types_json if k != organization_types_json['organization_type_names']} 

Json:

{ 
    "is_active": 0, 
    "is_delete": 1, 
    "organization_type_names": [{ 
     "lang": "EN", 
     "name": "Fire" 
    }, { 
     "lang": "FR", 
     "name": "Feu" 
    }] 
} 
+0

Mögliche Duplikat http://stackoverflow.com/questions/5466618/too-many-values-to-unpack-iterating-over-a-dict-key-string-value-list – Wombatz

+0

ich denke, die Fehler sagt '{" lang ":" FR "," Name ":" Feu "}' hat keinen Schlüssel –

Antwort

2

Sie müssen .items() hinzufügen wie folgt:

data = { k:v for (k, v) in organization_types_json.items() if k != 'organization_type_names'} 

Oder alle extrahieren und das Element entfernen.

d = dict(organization_types_json) 
del d['organization_type_names'] 
+0

welche Methode empfehlen Sie? Mein Anwendungsfall ist, dass ich eine JSON-Zeichenfolge erhalte, die Daten für 3 Tabellen enthält. Der verschachtelte Teil repräsentiert eine untergeordnete Tabelle. –

+0

@Joshua Nun, beide Methoden werden funktionieren. Ich glaube, dass es später schöner und effizienter ist, sie zu löschen. Die andere Methode ist effizienter im Speicher, sieht aber nicht so gut aus, wie ich glaube. – Bharel

Verwandte Themen