如何从指定字符串中提取字典并保存为kdb中的字典类型
从runQuery字符串中提取并转换为kdb字典
给定的目标字符串如下:
"runQuery
symscolumnsfastQueryexchange!((AAPLMSFTGOOGAMD);(sympricedate);1b;nasdaq)"
要提取其中的字典并转为kdb原生字典类型,可按以下步骤操作:
步骤1:截取字典表达式部分
原字符串中字典的表达式从syms开始,直接截断去掉开头的runQuery前缀(共10个字符)即可:dictStr: 10_ "runQuery `syms`columns`fastQuery`exchange!((`AAPL`MSFT`GOOG`AMD);(`sym`price`date);1b;`nasdaq)"执行后
dictStr的值为:"symscolumnsfastQueryexchange!((AAPLMSFTGOOGAMD);(sympricedate);1b;nasdaq)"步骤2:解析为kdb字典
使用kdb的value函数,将字符串形式的kdb表达式直接解析为实际的字典对象:resultDict: value dictStr验证结果
直接输出resultDict即可看到转换后的字典:q)resultDict syms | `AAPL`MSFT`GOOG`AMD columns | `sym`price`date fastQuery| 1b exchange | `nasdaq
如果原字符串的前缀长度不确定,也可以用字符串拆分的方式定位字典部分:
queryStr: "runQuery `syms`columns`fastQuery`exchange!((`AAPL`MSFT`GOOG`AMD);(`sym`price`date);1b;`nasdaq)" resultDict: value ("runQuery " vs queryStr)[1]
内容的提问来源于stack exchange,提问作者Rezzy
相关产品推荐
相关产品推荐

