csv kdb/q如何保存字典?

eqzww0vc  于 2023-11-14  发布在  其他
关注(0)|答案(2)|浏览(125)

我有一个字典,我试图使用kdb/q保存。为了保存我的字典,我尝试了与表相同的方法:

save `output.csv

字符串
然而,我的输出字典(类型99 h)给了我一个错误:

q))save `output.csv
   'output
   [4]  save `output.csv
        ^


我想这是因为这种表示法只适用于表而不适用于字典。谁能帮我一下怎么做,或者如果不可能的话,我怎么把字典变成表?
以下是我的字典的样子:
输出->类型99
x1c 0d1x的数据
输出使用`:out.csv设置输出


dz6r00yl

dz6r00yl1#

save足够灵活,可以将键控表写入csv。https://code.kx.com/q/ref/save/

q)output:([Name:`Tim`Bob`Ant;Time:02:20 01:12 03:30;ID:`9h`8a`2w]Score:100 212 998;Comment:("";"Late";"Over"))
q)type output
99h
q)save`output.csv
`:output.csv
q)read0`:output.csv
"Name,Time,ID,Score,Comment"
"Tim,02:20,9h,100,"
"Bob,01:12,8a,212,Late"
"Ant,03:30,2w,998,Over"

字符串
您粘贴的错误消息将指示output在当前上下文中不存在。您是否试图保存本地表而不是全局表?

q){output2:([Name:`Tim`Bob`Ant;Time:02:20 01:12 03:30;ID:`9h`8a`2w]Score:100 212 998;Comment:("";"Late";"Over"));save`output2.csv}[]
'output2

oalqel3c

oalqel3c2#

使用set编写一个二进制文件:
https://code.kx.com/q/ref/get/#set

q)`:file set `a`b!1 2
`:file

q)get `:file
a| 1
b| 2

字符串
注意:文件路径必须是hsym,即以:开头的符号
https://code.kx.com/q/ref/hsym/
你的对象是一个键表,它是一种特殊类型的字典。
https://code.kx.com/q/kb/faq/#keyed-tables
您可以使用0!取消对表的键控
https://code.kx.com/q/ref/enkey/#unkey

q)t:`a`b xkey ([] a:1 2;b:4 5;c:5 6)
q)type t
99h
q)t
a b| c
---| -
1 4| 5
2 5| 6
q)0!t
a b c
-----
1 4 5
2 5 6
q)type 0!t
98h


统一长度列表的字典也可以使用flip转换为表
https://code.kx.com/q/ref/flip/

相关问题