Suchen Sie einen Wert im verschachtelten json-Wörterbuch in Python

8

Aus dem folgenden json, in Python, möchte ich den Wert "TEXT" extrahieren. Alle Schlüssel sind konstant außer für unbekannt. Unbekannt könnte eine beliebige Zeichenfolge wie "a6784t66" oder "hobvp * nfe" sein. Der Wert von unbekannt ist nicht bekannt , nur dass er in dieser Position in jeder json-Antwort enthalten ist.

%Vor%

eine Zeile json

%Vor%

Wie würden Sie den Wert von "Text" erhalten? (Ich weiß, wie man den json mit json.loads lädt) .. aber ich bin nicht sicher, wie man den Wert von "Text" erhält. Danke.

(Ich bin mir nicht sicher, was der beste Titel ist.)

    
user1959942 09.01.2013, 02:49
quelle

3 Antworten

17

Es ist ein bisschen lang, aber in diesem Beispiel oben:

%Vor%

Sie behandeln es im Grunde wie ein Wörterbuch und übergeben die Schlüssel, um die Werte jedes verschachtelten Wörterbuchs zu erhalten. Der einzige Unterschied besteht darin, dass Sie maindata treffen, wobei der resultierende Wert eine Liste ist. Um das zu handhaben, ziehen wir das erste Element [0] und greifen dann auf den Schlüssel Info zu, um den Wert TEXT zu erhalten.

Wenn sich unknown ändert, würden Sie es durch eine Variable ersetzen, die den 'bekannten' Namen darstellt, den Sie an diesem Punkt in Ihrem Code annehmen werden:

%Vor%

Und wenn ich Ihre Frage tatsächlich beim ersten Mal richtig gelesen hätte, wenn Sie nicht wissen, was unknown zu irgendeinem Zeitpunkt ist, können Sie so etwas tun:

%Vor%

Dabei ist values() eine Variable, die Folgendes enthält:

%Vor%

Eine Einzelpostenliste, auf die mit [0] zugegriffen werden kann, und dann können Sie wie oben beschrieben vorgehen. Beachten Sie, dass dies davon abhängt, dass nur ein Element in diesem Wörterbuch vorhanden ist - Sie müssten ein Bit anpassen, wenn mehr vorhanden wäre.

    
RocketDonkey 09.01.2013, 02:57
quelle
2

Wie du gesagt hast, war das Unbekannte an einem festen Ort Sie können Folgendes tun

%Vor%

Dies sollte die Aufgabe erfüllen, da nur der unbekannte Schlüssel wirklich "unbekannt" ist

    
minocha 09.01.2013 03:26
quelle
2

Sie können eine rekursive Funktion verwenden, um jede Ebene zu durchsuchen und ihren Wert mit einem Einzug

auszudrucken %Vor%     
nagordon 06.11.2014 14:34
quelle