将符号转换为符号列表

Fri*_*ter 1 kdb

我读了一个csv文件:

csvFile:1!("SSS"; enlist ",") 0: hsym `$"\\\\location\\of\\csv";
Run Code Online (Sandbox Code Playgroud)

但是符号列表被读作单个符号.例如,在CSV文件我有'a'b'c,但

csvFile`some_keyed_value
`col1`col2!``a`b`c`
Run Code Online (Sandbox Code Playgroud)

我想要的是这个 - 并注意一个单一的自动收报机应该是一个空列表:

`col1`col2!(`a`b`c;())
Run Code Online (Sandbox Code Playgroud)

有没有办法在csv中进行不同的转换或读取或修改csv以便正确读入?任何修改我对CSV(如更换'())简单地将其转换为单个符号(例如我得到的'()).

这是csv中几行的屏幕截图

在此输入图像描述

use*_*865 5

为了您的输入,以下工作.您也可以使用cut而不是vs,如前面的示例所示.

q)update `$table, `$_[1;]each vs["`";]each writeAllow, `$_[1;]each 
vs["`";]each writeLog from ("***";enlist",")0:`:tmp.csv

table       writeAllow            writeLog
------------------------------------------------------
:/loader/P1 `pg`sec-fg-id         `symbol$()
:/loader/P2 `pg`shara`mcdonald    `pg`MD`svc
:/loader/P3 `symbol$()            `pg`MD`svc
Run Code Online (Sandbox Code Playgroud)

您应该重新考虑使用反引号存储sym数据 - 使用不同的分隔符存储来分隔子记录并具有用于解析这些字段的专用函数将是直接的.

  • 您也可以从上面的代码行中删除`hsym`. (2认同)