如何将一个(小型)表格转换为关联数组列表,或者如何在“For Each Row”循环中编写列名脚本?大家好!
我需要将一个小表格转换成一个关联数组列表。其中每一行都是该列表的一个成员,并且是一个关联数组,列名作为键,行值作为值。
目前我有以下情况:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
listAA = {};
columnList = dt << Get Column Names( string );
For Each Row(
currentAA = Associative Array();
For Each( {columnName, index}, columnList, currentAA[columnName] = Column( dt, columnName ) );
Insert Into( listAA, currentAA );
);
//Check
listAA[1]["age"]
//:*/
listAA[1]["age"]
/*:
Column( "age" )
输出结果不是一个值,而是对列的引用。因此,在 For Each Row 循环中使用 Column(name) 引用列时似乎不起作用,只有像脚本索引中那样硬编码名称才有效:
For Each Row( :height = -:height );
问题:
1. 有没有一种简单优雅的方法可以从表格中获取AA列表?如果没有,我需要如何修改当前的版本?
2. 在使用“For Each Row”时,如何以非硬编码的方式引用列?
谢谢,
M.
自动化和脚本编写回复:如何将一个(小型)表格转换为关联数组列表,或者如何在“For Each Row”循环中编写列名脚本?或许像这样
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
collist = dt << Get Column Names(string);<BR />
l = {};
For Each Row(
aa = Associative Array(collist, dt[Row(), 0]);
Insert Into(l, aa);
);
Show(l);
回复:如何将一个(小型)表格转换为关联数组列表,或者如何在“For Each Row”循环中编写列名脚本?您也可以将其保存为 .json 文件,然后将其解析为 AA 格式。
Names Default To Here(1);
path = "$TEMP/test.json";
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Save(path);
json_str = Load Text File(path);
Delete File(path);
l = Parse JSON(json_str);