1

我正在尝试使用 pyq 创建一个带有符号列的张开表。在 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 中这个的正确语法是什么?

4

1 回答 1

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)')))
于 2017-12-19T06:15:06.127 回答