如何使用qPython将行插入KDB

如何使用qPython将行插入KDB,python,kdb,qpython,Python,Kdb,Qpython,我正在尝试使用脚本连接到KDB,并使用qpython()将行插入KDB中的表中。“我的表”有以下列类型: “符号”、“符号”、“整数”、“时间戳”、“字符串”、“字符串”、“符号”、“符号”、“字符串”、“字符串”、“字符串”、“字符串” 我尝试使用“.u.upd”,但这不会返回任何内容,也不会更新表: time=[numpy.timedelta64((numpy.datetime64(datetime.now())-today),'ms'),用于范围(1)内的x) 行=[qlist(['te

我正在尝试使用脚本连接到KDB,并使用qpython()将行插入KDB中的表中。“我的表”有以下列类型:
“符号”、“符号”、“整数”、“时间戳”、“字符串”、“字符串”、“符号”、“符号”、“字符串”、“字符串”、“字符串”、“字符串”

我尝试使用
“.u.upd”
,但这不会返回任何内容,也不会更新表:

time=[numpy.timedelta64((numpy.datetime64(datetime.now())-today),'ms'),用于范围(1)内的x)
行=[qlist(['test'],qtype=QSYMBOL_列表),qlist(['test'],qtype=QSYMBOL_列表),qlist([1],qtype=QINT_列表),qlist(时间,qtype=QTIME_列表),
qlist(['t','e','s','t']],qtype=QSTRING_列表),qlist(['t','e','s','t']],qtype=QSTRING_列表),qlist(['test'],qtype=QSYMBOL_列表),qlist(['test'],qtype=QSYMBOL_列表),
qlist([['t','e','s','t']],qtype=QSTRING_列表),qlist(['t','e','s','t']],qtype=QSTRING_列表),qlist([[t','e','s','t']],qtype=QSTRING_列表)]
结果=self.q.sendSync('.u.upd',numpy.string_904;('tableName'),行)
当我尝试使用insert时,我得到错误类型:

result=self.q('tableName insert('test;'test;1i;2019.08.09D12:00:00.123123123;'t;'e;'s;'t');'t;'test;'test;'t;'t;'t;'t;'e;'s;'t';'t;'t;'e;'s;'t');'t;'

非常感谢您的帮助。

在使用insert时,您应该通过引用而不是通过值传递表名

result=self.q(`tableName insert(`test;`test;1i;2019.08.09D12:00:00.123123123;(“t”;“e”;“s”;“t”);(“t”;“e”;“s”;“t”);(“t”;“e”;“s”;“t”);(“t”;“e”;“s”;“t”)));

注意表名前面的反勾号


对于您的另一个问题,
.u.upd
仅存在于实时/tickerplant设置中,不是内置的q函数

可能值得一提的是,它只在vanilla kdb+tick中定义。因此,如果你不使用香草脚本,那么不一定在所有的勾选设置中定义。谢谢,这对我有用!在我将反勾号添加到表名之后,我得到了一个“长度”错误,必须在插入列表中添加一个时间戳。在那之后,我可以插入。