我尝试使用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中的正确语法是什么?
答案 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)')))