kdb- ssr 在单双引号列上
kdb- ssr on a single, double quote symbol colum
我最近更改了一个数据源(但 table 相同),我正在尝试清理我的 table 并且遇到一个讨厌的字符 "
的问题试图替换为 null
当table被push到kdb时,它是一个符号列,可以有一个单双引号(ascii 34。)我已经运行ssr
替换了它使用 null
并使用 fills
来填充它在数据源更改之前的某一时刻工作过的内容。我认为它可能是一个 leading/trailing 空格所以我检查了 trim
这似乎没问题所以没有包含恶意空格。
出于某种原因,我无法对其执行 ssr
功能。我正在验证字符是否正确。我以为我有它的工作,但我下面的更新没有。
有什么想法吗?我假设它是我的正则表达式?
P.S。我希望避免使用 '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;
//verify the data types are symbols
meta t;
c | t f a
-------------| -----
id | s
seg | s
这是我尝试将 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
这应该可以完成工作
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
我最近更改了一个数据源(但 table 相同),我正在尝试清理我的 table 并且遇到一个讨厌的字符 "
的问题试图替换为 null
当table被push到kdb时,它是一个符号列,可以有一个单双引号(ascii 34。)我已经运行ssr
替换了它使用 null
并使用 fills
来填充它在数据源更改之前的某一时刻工作过的内容。我认为它可能是一个 leading/trailing 空格所以我检查了 trim
这似乎没问题所以没有包含恶意空格。
出于某种原因,我无法对其执行 ssr
功能。我正在验证字符是否正确。我以为我有它的工作,但我下面的更新没有。
有什么想法吗?我假设它是我的正则表达式?
P.S。我希望避免使用 '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;
//verify the data types are symbols
meta t;
c | t f a
-------------| -----
id | s
seg | s
这是我尝试将 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
这应该可以完成工作
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