Wie importieren Sie JSONs, die doppelt verschachtelte Arrays enthalten?Ich versuche, eine Reihe von JSON-Dateien zu importieren, die doppelt verschachtelte Arrays enthalten (siehe Beispiel unten). Die Arrays folgen keinem einheitlichen Format. Jedes Array kann mehrere Objekte enthalten oder auch gar keine. Ich möchte einen Score pro Zeile haben, wie unten gezeigt.


Wie kann ich die Daten in diesem Format mit dem Importtool abrufen? Außerdem ist der Name der Vorhersage nicht immer gleich geschrieben, z. B. lautet er manchmal „Kleine Katzen“ und manchmal „smallCats“.
DatenzugriffBetreff: Wie importiert man JSONs, die doppelt verschachtelte Arrays enthalten?Dies ist viel einfacher zu beantworten, wenn Sie eine JSON-Beispieldatei freigeben können, die Sie importieren möchten.
Betreff: Wie importiert man JSONs, die doppelt verschachtelte Arrays enthalten?Ich habe unten angehängt, danke!
Betreff: Wie importiert man JSONs, die doppelt verschachtelte Arrays enthalten?Möglicherweise müssen Sie dafür einen benutzerdefinierten Parser schreiben. Verwenden Textdatei laden (Dateipfad, JSON); und analysieren Sie dann das resultierende assoziative Array. Es sollte sein irgendwie einfach, wenn das Format ist konsistent.
Betreff: Wie importiert man JSONs, die doppelt verschachtelte Arrays enthalten?Um mit den benutzerdefinierten Parses loszulegen: Sie sollten sich den Stack-Mole ansehen: https://community.jmp.com/t5/JSL-Cookbook/The-stack-mole/ta-p/302563
Siehe beigefügte Implementierung (erfordert Ihre json-Datei im Download-Ordner). Nicht genau das, was Sie wollen, aber näher.
Betreff: Wie importiert man JSONs, die doppelt verschachtelte Arrays enthalten?Hier ist ein Beispiel, das Sie ausprobieren können, um loszulegen. Es scheint zu tun, was Sie wollen, in der von Ihnen bereitgestellten Beispieldatei. In Ihrem speziellen Fall ist die benutzerdefinierte Analyse relativ einfach, obwohl dies nicht immer der Fall ist. Für tiefere, kompliziertere Strukturen wäre wahrscheinlich das Parsen mit Rekursion vorzuziehen.
Prost,
Brady
Names Default To Here(1);
aa = Load Text File(pickfile(), "JSON");
/* since only the "prediction" key of the main array produces varying row values, the following AA can be used
to write those columns with nonvarying values, after all else is done.
*/
constantsAA = remove(aa, "prediction");
dt = new table("Parsed results",
<< new column("Points 1"), <<NEW column=""> 0, //if the value for this cat type is an empty list, there is no data, so skip the body of the loop
for each({w, k}, aa["prediction"][v], //else, cycle through the list values, writing to the table
dt << add rows(1);
dt[nrow(dt), 1::4] = shape( Matrix(w["data"]["points"] ), 1); // places the values from {{x, y}, {w, z}}, into the 1st 4 table columns
dt:Cat type = v;
dt:Score = w["score"];
dt: Frame Type = w["type"];
);
)
);
//now, cycle through the AA containing "constant" data, adding this to the table
//Note: the char() function was employed to deal with the "flagged" column's unquoted 'true' value.
for each({v, i}, constantsAA << get keys,
dt << new column(v, character, <<SET each="" value=""></SET></NEW>Betreff: Wie importiert man JSONs, die doppelt verschachtelte Arrays enthalten?Ich hatte eine sehr ähnliche Version @brady_brady 's Lösung, aber es gibt einige kleine Unterschiede, die einige Ideen zum Nachdenken anregen könnten, also teile ich sie:
Mehr sehen...