kdb- ssr 在单双引号符号列上

Jas*_*n_L 1 kdb

我有一个最近更改的数据源(但是同一个表),我正在尝试清理我的表,并且遇到一个令人讨厌的字符问题",我试图用它替换null

当表被推送到 kdb 时,它是一个符号列,可以有一个单双引号(ascii 34)。我一直在运行ssr以替换它null并使用它fills来填充它在数据源更改之前的某一点上工作过的内容。我认为这可能是前导/尾随空格,所以我检查了trim这似乎没问题,所以不包含任何恶意空格。

由于某种原因,我无法ssr对其执行功能。我正在验证字符是否正确。我以为我可以正常工作,但下面的更新却没有。

有什么想法吗?我假设它是我的正则表达式?

PS 我希望避免使用将其'int $ seg转换为 ascii,但这是我的下一个想法。

// update query does not fail but doesn't update the single, double quote in seg
t: update seg: fills `$ssr[;"\"\"";""] each string seg from t; 

Run Code Online (Sandbox Code Playgroud)
//verify the data types are symbols
meta t;
c            | t f a
-------------| -----
id           | s
seg          | s
Run Code Online (Sandbox Code Playgroud)

这是我尝试将 seg 转换为字符串,以了解如何转义引号以及所需的目标。

id       seg      Displaystring    Ticker  ---->> Desired output
------------------------------------------------------
AAA  1   GOOG    "GOOG"            GOOG
AAA  2   "       ,"\""             GOOG
AAA  3   "       ,"\""             GOOG
AAA  4   "       ,"\""             GOOG
AAA  5   "       ,"\""             GOOG
AAA  6   "       ,"\""             GOOG
BBB  1   AMZN    "AMZN"            AMZN
BBB  2   "       ,"\""             AMZN
BBB  3   "       ,"\""             AMZN
CCC  1   AAPL    "AAPL"            AAPL
CCC  2   "       ,"\""             AAPL
CCC  3   "       ,"\""             AAPL
DDD  1   TSLA    ,"\""             TSLA
DDD  2   "       ,"\""             TSLA
Run Code Online (Sandbox Code Playgroud)

小智 5

这应该可以完成工作

q)tab:([]id:`$raze{x,/:string 1+til y}'[("AAA ";"BBB ";"CCC ";"DDD ");6 3 3 2];seg:@[`$'14#"\"";0 6 9 12;:;`GOOG`AMZN`AAPL`TSLA])
q)tab
id    seg
----------
AAA 1 GOOG
AAA 2 "
AAA 3 "
AAA 4 "
AAA 5 "
AAA 6 "
BBB 1 AMZN
BBB 2 "
BBB 3 "
CCC 1 AAPL
CCC 2 "
CCC 3 "
DDD 1 TSLA
DDD 2 "
q)update fills?[seg=`$"\"";`;seg]from tab
id    seg
----------
AAA 1 GOOG
AAA 2 GOOG
AAA 3 GOOG
AAA 4 GOOG
AAA 5 GOOG
AAA 6 GOOG
BBB 1 AMZN
BBB 2 AMZN
BBB 3 AMZN
CCC 1 AAPL
CCC 2 AAPL
CCC 3 AAPL
DDD 1 TSLA
DDD 2 TSLA
Run Code Online (Sandbox Code Playgroud)