如何在KDB中将嵌套字典转换为指定格式的长表
KDB嵌套字典转长表实现方案
你给出的嵌套字典本质是行索引为1/2、列名为a/b/c的宽表,使用KDB内置函数即可一步完成转换,不需要自定义遍历逻辑,是性能最优也最符合规范的写法:
核心实现代码
// 第一步:基于你给出的原始字典构造键控表,保留行索引 raw_dict:`1`2!((`a`b`c!(1 2 3));(`a`b`c!(4 5 6))) kt:`idx xkey flip raw_dict // 第二步:一行代码转长表 res:ungroup `idx xkey flip (key kt)!flip value kt
输出结果验证
运行后得到的res表结构完全匹配需求:
| idx | col | val |
|---|---|---|
| 1 | a | 1 |
| 1 | b | 2 |
| 1 | c | 3 |
| 2 | a | 4 |
| 2 | b | 5 |
| 2 | c | 6 |
如果不需要保留列名,直接取对应列的值输出即可。
内容的提问来源于stack exchange,提问作者cjm2671
相关产品推荐
相关产品推荐

