同步查询中的qPython字节类型异常

时间:2017-07-31 09:15:47

标签: python kdb qpython

我正在尝试使用以下select语句查询KDB:{select from order where OrderID = x}。传入参数时,它会不断抛出b'lenghth异常。我使用numpy.string_方法(latin-1和utf-8)尝试了numpy.bytes_bytes和常规.encode()

当我查询一条记录以调查OrderID列的类型时,它会告诉我列类型为bytes

我做错了什么?不确定docs中的破折号应该是什么意思。谢谢!

1 个答案:

答案 0 :(得分:0)

听起来kdb端的OrderID类型是字符列表。在这种情况下,您需要使用like在查询中进行比较:

{select from order where OrderID like x}

然后你应该可以使用常规Python字符串作为参数,.e.g。

q.sync("{select from order where OrderID like x}", "my_order_id")

只要您不在参数x中使用任何通配符,那么这只会匹配确切的字符串。即。

 q)"one" like "one"
1b
q)"ones" like "one"
0b
q)"ones" like "one*"
1b