PyQ:如何在splayed表上枚举符号列?

时间:2017-12-19 04:27:32

标签: python-3.x kdb q-lang pyq

我尝试使用pyq创建一个带符号列的splayed表。在q中,我将通过使用.Q.en ...

枚举符号列来设置表格
:splay/ set .Q.en[`:splay;]([]a:`x`y`z; b:1 2 3)

我尝试了以下几种变体......

q.set(':splay/', q('.Q.en')('!', ["Name", "Ask", "Bid", "Last", "Vol", "Time"], [K.symbol([]), K.float([]), K.float([]), K.float([]), K.float([]), K.timestamp([])]).flip)

但它会引发以下排名错误:_k.error: rank

pyq中的正确语法是什么?

1 个答案:

答案 0 :(得分:3)

首先,您的q代码不正确。功能

.Q.en[`:splay;]

会将sym文件放在splay表中,这不是你想要的。相反,sym文件应保存在db表旁边的顶级数据库目录(下面的代码中为splay)中。

`:db/splay/ set .Q.en[`:db]([]a:`x`y`z; b:1 2 3)

相同的代码可以用pyq写成

q.set(':db/splay/', q('.Q.en', ':db', q('([]a:`x`y`z; b:1 2 3)')))