如何將一個(小型)表格轉換為關聯數組列表,或者如何在“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);