首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >qPython qpython.qtype.QException: B‘长度’

qPython qpython.qtype.QException: B‘长度’
EN

Stack Overflow用户
提问于 2017-07-26 13:26:55
回答 1查看 2.8K关注 0票数 1

因此,我试图向kdb+发送以下查询(同步):

q.sync('{select from trade where date>x,date<y, sym=z}', 'instr81', '2014.04.14', '2017.04.14')

执行时,它给了我raise QException(self._read_symbol()) qpython.qtype.QException: b'length',而我不知道它是从哪里来的。我尝试过其他类型,如numpy.string_或常规字节(b‘I 81’),但没有成功。

我是不是遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-26 13:41:45

您的参数顺序忽略了:从您的q.sync调用来看,x'instr81'y'2017.04.14'z'2017.04.14'

您的长度错误是因为您将n个日期的列表与长度m的字符串进行比较。

我非常肯定您的查询也会因为您的日期类型而失败--您需要发送实际日期(作为每个numpy.datetime64 D文献资料)而不是字符串。

您也正确地需要转换您的字符串--尽管如此,q将接收“符号”作为字符串类型,因为它尚未作为numpy.string_类型发送。

更好的语法可能如下所示--还可以使用within而不是date>x,date<y来观察性能更好的Q代码--这将节省您在x之后读取所有分区,然后为date<y进行子设置。这是如果您希望将选择包含在内-我注意到您的查询是独占的,所以在示例中的查询中,您永远不应该获得任何数据(您的start ==您的end因此0的结果)。

代码语言:javascript
运行
复制
> import numpy as np
> q.sync(
    '{[x;y;z]select from trade where date within(x;y),sym=z}', 
    np.datetime64('2014-04-14','D'), #start date
    np.datetime64('2014-04-14','D'), #end date
    np.string_('instr81')
 )
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45328386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档