在 pyq 中更新到 table
Upsert to a table in pyq
OS: Windows 10 Enterprise
, Python: Python 3.6.4
, PyQ: pyq (4.1.4)
.
我很确定我的数据类型是正确的,尽管当我尝试更新插入到我的 table.
时,我一直收到 _k.error: type
首先,我使用以下命令初始化 table...
q.set(':testTable', q('!', ["Key", "Status", "Descr", "FileName"], [K.long([]), K.int([]), K.char([]), K.symbol([])]).flip)
检查 table 元...
q.get(':testTable').meta.show()
c | t f a
--------| -----
Key | j
Status | i
Descr | c
FileName| s
我在python中设置了一些示例变量,分别存储在列表和字典中...
key = 42
status = 3
descr = "h"
fn = "cymbeline"
data = [key, status, descr, fn]
data_dict = {a:b for a, b in zip(['Key', 'Status', 'Descr', 'FileName'], data)}
然后我尝试使用以下每个命令分别更新到 table...
q.upsert(':testTable', data)
q.upsert(':testTable', data_dict)
但是,它们都失败了,并显示相同的 _k.error: type
消息。
我认为这里有一个简单的解决方案,但我似乎无法弄清楚。提前谢谢你。
您需要将 descr 显式转换为 K.char 类型:
descr = K.char("h")
否则它会被隐式转换为符号,你会得到一个类型错误。
OS: Windows 10 Enterprise
, Python: Python 3.6.4
, PyQ: pyq (4.1.4)
.
我很确定我的数据类型是正确的,尽管当我尝试更新插入到我的 table.
时,我一直收到_k.error: type
首先,我使用以下命令初始化 table...
q.set(':testTable', q('!', ["Key", "Status", "Descr", "FileName"], [K.long([]), K.int([]), K.char([]), K.symbol([])]).flip)
检查 table 元...
q.get(':testTable').meta.show()
c | t f a
--------| -----
Key | j
Status | i
Descr | c
FileName| s
我在python中设置了一些示例变量,分别存储在列表和字典中...
key = 42
status = 3
descr = "h"
fn = "cymbeline"
data = [key, status, descr, fn]
data_dict = {a:b for a, b in zip(['Key', 'Status', 'Descr', 'FileName'], data)}
然后我尝试使用以下每个命令分别更新到 table...
q.upsert(':testTable', data)
q.upsert(':testTable', data_dict)
但是,它们都失败了,并显示相同的 _k.error: type
消息。
我认为这里有一个简单的解决方案,但我似乎无法弄清楚。提前谢谢你。
您需要将 descr 显式转换为 K.char 类型:
descr = K.char("h")
否则它会被隐式转换为符号,你会得到一个类型错误。