You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

KDB+如何更新嵌套字典:修改内部键值对触发assign错误如何解决

解决kdb+嵌套字典赋值'assign错误的方法

错误原因

kdb+不支持链式索引赋值,也就是books[firstKey][secondKey]:value的写法是非法的:第一层索引返回的是内层子字典的临时副本,无法对临时副本执行赋值操作,因此抛出'assign错误。

正确写法

方法1:合并多维度索引(最常用)

把所有层级的索引放在同一对方括号中,不同层级的索引用分号分隔:

books[`$"ETH-USD-BIDS"; 3518.12]:4f

赋值完成后就可以正常查询到更新后的值:

q)books[`$"ETH-USD-BIDS"][3518.12]
4f

方法2:使用@ amend算子

如果需要在函数中动态处理嵌套赋值,可以用@ amend算子实现:

@[books; `$"ETH-USD-BIDS"; @[; 3518.12; :; 4f]]

补充说明

如果目标价格档位在内层字典中不存在,上述写法会自动新增对应的键值对,无需额外操作即可完成订单簿档位的新增。

内容的提问来源于stack exchange,提问作者New Ancient

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 01:21:03