将 csv 字符串转换为 csv 中的 table
Convert a csv string to a table in csv
如果我们有一个包含 csv 的文件,那么我们可以使用 0 读取它:
比如说,我们在磁盘上有一个文件 x.csv 然后将它转换为 table 很容易,如下所示
("SFJ";enlist",")0:`:/x.csv
但是,我们如何将 csv 字符串转换为 table?
字符串:
"sym,px,vol
GG,10.2,100
AA,11.2,1000"
预期输出:table
sym px vol
"GG" 10.2 100
"AA" 11.2 1000
可以使用 0: 而不是文件句柄传入字符串,table 将正常创建:
q)s:("sym,px,vol";"GG,10.2,100";"AA,11.2,1000")
q)s
"sym,px,vol"
"GG,10.2,100"
"AA,11.2,1000"
q)("SFJ";enlist",")0:s
sym px vol
-------------
GG 10.2 100
AA 11.2 1000
如果您需要以编程方式从一个大字符串 csv 获取 Eliot 的 s
,根据 csv 字符串的格式,有几个选项。
// \n delimited
s:` vs "sym,px,vol\nGG,10.2,100\nAA,11.2,1000"
// if you know the row and col count.
s:3 3#"," vs "sym,px,vol,GG,10.2,100,AA,11.2,1000"
// if you just know the col count
s:"sym,px,vol,GG,10.2,100,AA,11.2,1000"
f:{[str;noCol]
str:"," vs str;
noRow:`long$(count str)%noCol;
(noRow, noCol)#str
}
f[s;3]
三个都输出这个("sym,px,vol";"GG,10.2,100";"AA,11.2,1000")
如果我们有一个包含 csv 的文件,那么我们可以使用 0 读取它: 比如说,我们在磁盘上有一个文件 x.csv 然后将它转换为 table 很容易,如下所示
("SFJ";enlist",")0:`:/x.csv
但是,我们如何将 csv 字符串转换为 table?
字符串:
"sym,px,vol
GG,10.2,100
AA,11.2,1000"
预期输出:table
sym px vol
"GG" 10.2 100
"AA" 11.2 1000
可以使用 0: 而不是文件句柄传入字符串,table 将正常创建:
q)s:("sym,px,vol";"GG,10.2,100";"AA,11.2,1000")
q)s
"sym,px,vol"
"GG,10.2,100"
"AA,11.2,1000"
q)("SFJ";enlist",")0:s
sym px vol
-------------
GG 10.2 100
AA 11.2 1000
如果您需要以编程方式从一个大字符串 csv 获取 Eliot 的 s
,根据 csv 字符串的格式,有几个选项。
// \n delimited
s:` vs "sym,px,vol\nGG,10.2,100\nAA,11.2,1000"
// if you know the row and col count.
s:3 3#"," vs "sym,px,vol,GG,10.2,100,AA,11.2,1000"
// if you just know the col count
s:"sym,px,vol,GG,10.2,100,AA,11.2,1000"
f:{[str;noCol]
str:"," vs str;
noRow:`long$(count str)%noCol;
(noRow, noCol)#str
}
f[s;3]
三个都输出这个("sym,px,vol";"GG,10.2,100";"AA,11.2,1000")