He estado extrayendo datos de Strava y llevándolos a JMP. Los datos están en un formato JSON como el adjunto. Es un proceso un poco doloroso en este momento para mí que implica columnas de eliminación de apilamiento de series múltiples y muchas maniobras de datos. Me gustaría terminar con las dos tablas que adjunté. Espero que sea solo mi falta de conocimiento con el análisis JSON lo que está causando el problema. Si alguien tiene la oportunidad de echar un vistazo, agradecería cualquier idea sobre cómo hacer que el proceso sea menos doloroso.
**** EDITAR: asegúrese de cambiar su ruta en la línea 5 a donde reside su archivo.
Pete, prueba esto. Después de ejecutar el asistente de importación, parece que lo que regresa, aunque es inútil a primera vista, es suficiente para continuar, al menos para el conjunto de datos en cuestión. Déjame saber cómo te va en este (e idealmente, otro) conjunto de datos. He hecho suposiciones sobre cómo vuelven los datos, que pueden no ser válidos para otros datos.
Names Default To Here( 1 );
jsonFromWizardExpr = Expr(
dt = Open(
"/Users/brady.brady@jmp.com/Downloads/Morning_Run_.json",
JSON Settings(
Stack( 0 ),
Row( "/root/data/values" ),
Col(
"/root/data/values",
Column Name( "values" ),
Fill( "Use Once" ),
Type( "Numeric" ),
Format( {"Best"} ),
Modeling Type( "Continuous" )
),
Col(
"/root/data/fields",
Column Name( "fields" ),
Fill( "Use Once" ),
Type( "Character" ),
Format( {"Best"} ),
Modeling Type( "Continuous" )
)
),
JSON Wizard( 0 )
)
);
jsonFromWizardExpr;
//get nonempty rows in column 2. These follow the data having the fields indicated
{rowA, rowB} = As List( dt << get rows where( dt:fields != "" ) );
//main logic is here; note latlng needs to be split to lat, lng
colList = Words( Substitute( dt:fields[rowA], "latlng", "lat, lng" ), " ," );
As Table( Shape( dt[1 :: (rowA - 1), 1], (rowA - 1) / N Items( colList ) ), <<column names( colList ) );
colList = Words( dt:fields[rowB], ", " );
As Table( Shape( dt[((rowA) :: (rowB - 1)), 1], (rowB - rowA) / N Items( colList ) ), <<column names( colList ) );