Come si importano i file JSON che contengono array annidati doppi?Sto cercando di importare un certo numero di file JSON che contengono array doppi annidati (vedi esempio sotto). Gli array non seguono un formato coerente, potrebbero esserci numerosi oggetti in ogni array o nessuno. Voglio avere un punteggio per riga come mostrato sotto.


Come posso ottenere i dati in questo formato usando lo strumento di importazione? Inoltre, il nome della previsione non è sempre scritto nello stesso modo, ad esempio a volte è "Small Cats" e a volte è "smallCats".
Accesso ai datiRi: Come si importano i JSON che contengono array nidificati doppi?È molto più facile rispondere se puoi condividere un file JSON di esempio che desideri importare.
Ri: Come si importano i JSON che contengono array nidificati doppi?Ho allegato di seguito, grazie!
Ri: Come si importano i JSON che contengono array nidificati doppi?Potrebbe essere necessario scrivere un parser personalizzato per questo. Uso Carica file di testo (percorso_file, JSON); e quindi analizzare la matrice associativa risultante. Dovrebbe essere tipo semplice se il formato è coerente.
Ri: Come si importano i JSON che contengono array nidificati doppi?Per iniziare le analisi personalizzate: dovresti dare un'occhiata alla talpa dello stack: https://community.jmp.com/t5/JSL-Cookbook/The-stack-mole/ta-p/302563
Vedi l'implementazione allegata (richiede il tuo file json nella cartella dei download). Non esattamente quello che vuoi, ma più vicino.
Ri: Come si importano i JSON che contengono array nidificati doppi?Ecco un esempio che puoi provare per iniziare. Sembra fare quello che vuoi, sul file di esempio che hai fornito. Nel tuo caso particolare, l'analisi personalizzata è relativamente semplice, anche se non è sempre così. Per strutture più profonde e contorte, sarebbe probabilmente preferibile l'analisi con ricorsione.
Saluti,
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>Ri: Come si importano i JSON che contengono array nidificati doppi?Avevo una versione molto simile a @brady_brady 's soluzione, ma ci sono alcune piccole differenze che potrebbero dare alcune idee su cui pensare, quindi la condivido:
Visualizza di più...