首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python3.8中使用qPython和Pandas实现q-lang查询

在Python3.8中使用qPython和Pandas实现q-lang查询
EN

Stack Overflow用户
提问于 2020-02-16 13:39:10
回答 1查看 513关注 0票数 0

我对q-language完全陌生,但我需要使用它来访问kdb服务器来获取数据。

我使用的是安装了qPython的Windows10下的Python3.8。

我在将查询发送到服务器时遇到问题。

代码语言:javascript
复制
from qpython import qconnection
import pandas as pd


tbl = 'q("h\"select from trade where date = 2007.02.28, sym = `XXXX\"")'


q = qconnection.QConnection(host=server, port=server_port, username=user, password=server_password, timeout=server_timeout)

q.open()
df = pd.DataFrame(q.sendSync('tbl'))
q.close()

在执行脚本时,它在第15行返回一个错误:

qpython.qtype.QException: b'tbl'

因此,我在向服务器发送正确的表达式时遇到了问题。我能够在Linux Debian10下使用q(带有PyQ)通过终端传递表达式,所以查询是正确的。

(将跳过服务器详细信息以及焊接名称)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-17 00:00:22

PyQ和qPython在这里被搞混了。q.sendSync('tbl')将从kdb服务器获取变量tbl。这个错误:qpython.qtype.QException: b'tbl'意味着tbl在kdb服务器上不存在。我认为您想要的是将select语句发送到kdb服务器:

代码语言:javascript
复制
from qpython import qconnection
import pandas as pd

q = qconnection.QConnection(host=server, port=server_port, username=user, password=server_password, timeout=server_timeout, pandas=True)

q.open()
df = q.sendSync('select from trade where date = 2007.02.28, sym = `XXXX')
q.close()

对你来说,花点时间了解Q本身并快速掌握这里的一些基础知识可能是值得的:

https://code.kx.com/q4m3/1_Q_Shock_and_Awe/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60245722

复制
相关文章

相似问题

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