在 Python 3.8 中使用 qPython 和 Pandas 在 q-lang 中查询
Query in q-lang using qPython and Pandas in Python 3.8
我对 q 语言完全陌生,但我需要使用它来访问 kdb 服务器以从中获取数据。
我正在使用 Python 3.8,在 Windows10 下,安装了 qPython。
我无法将查询发送到服务器。
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()
在执行脚本时 returns 第 15 行出现错误:
qpython.qtype.QException: b'tbl'
所以我无法将正确的表达式发送到服务器。我能够通过终端传递表达式,在 Linux Debian 10 下使用 q(使用 PyQ),所以查询是正确的。
(跳过服务器详细信息以及绑定名称)。
PyQ 和 qPython 在这里被混淆了。 q.sendSync('tbl')
将从 kdb 服务器获取变量 tbl。此错误:qpython.qtype.QException: b'tbl'
表示 kdb 服务器上不存在 tbl。我认为您想要的是要发送到 kdb 服务器的 select 语句:
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 本身并快速了解一些基础知识:
我对 q 语言完全陌生,但我需要使用它来访问 kdb 服务器以从中获取数据。
我正在使用 Python 3.8,在 Windows10 下,安装了 qPython。
我无法将查询发送到服务器。
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()
在执行脚本时 returns 第 15 行出现错误:
qpython.qtype.QException: b'tbl'
所以我无法将正确的表达式发送到服务器。我能够通过终端传递表达式,在 Linux Debian 10 下使用 q(使用 PyQ),所以查询是正确的。
(跳过服务器详细信息以及绑定名称)。
PyQ 和 qPython 在这里被混淆了。 q.sendSync('tbl')
将从 kdb 服务器获取变量 tbl。此错误:qpython.qtype.QException: b'tbl'
表示 kdb 服务器上不存在 tbl。我认为您想要的是要发送到 kdb 服务器的 select 语句:
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 本身并快速了解一些基础知识: