qPython 同步查询字节类型异常
qPython bytes type exception in sync query
我正在尝试使用以下 select 语句查询 KDB:{select from order where OrderID = x}
。传入参数时,它会不断抛出 b'lenghth 异常。我已经使用 .encode()
方法(latin-1 和 utf-8)尝试了 numpy.string_
、numpy.bytes_
和常规 bytes
。
当我查询一条记录以调查 OrderID 列的类型时,它告诉我列类型是 bytes
。
我做错了什么?不确定 docs 中的破折号是什么意思。谢谢!
kdb这边OrderID
的类型好像是字符列表。在这种情况下,您需要使用 like
在查询中进行比较:
{select from order where OrderID like x}
然后您应该可以使用常规 Python 字符串作为参数,例如
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
我正在尝试使用以下 select 语句查询 KDB:{select from order where OrderID = x}
。传入参数时,它会不断抛出 b'lenghth 异常。我已经使用 .encode()
方法(latin-1 和 utf-8)尝试了 numpy.string_
、numpy.bytes_
和常规 bytes
。
当我查询一条记录以调查 OrderID 列的类型时,它告诉我列类型是 bytes
。
我做错了什么?不确定 docs 中的破折号是什么意思。谢谢!
kdb这边OrderID
的类型好像是字符列表。在这种情况下,您需要使用 like
在查询中进行比较:
{select from order where OrderID like x}
然后您应该可以使用常规 Python 字符串作为参数,例如
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