我一直在从Strava中提取数据并将其引入JMP。 数据采用JSON格式,就像所附的格式一样。对于我来说,这涉及到多序列堆栈删除列和大量数据操作,这对我来说是一个痛苦的过程。 最后,我想附上两个表格。 我希望是因为我对JSON解析的了解不足导致了麻烦。 如果有人有机会看一看,我将感谢您提出的有关减轻该过程痛苦的任何想法。
****编辑:确保将第5行中的路径更改为文件所在的位置。
皮特,试试看。运行导入向导后,似乎返回的内容虽然乍一看毫无用处,但至少对于手头的数据集来说足够了。让我知道在这个(最好是另一个)数据集上对您的影响。我已经假设数据如何返回,这可能对其他数据无效。
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 ) );