怎么把字典存到数据表里?

我想建一张表,每一行存储一个因子计算的参数字典。参数字典的类型是(STRING,ANY),字典的key是参数名,value是参数值,参数值可能是标量或者向量。因为参数的数量是不确定的,而且可能有string数组,所以把参数存成table不太现实。请问有好的办法把字典存到表里吗?

请先 登录 后评论

1 个回答

Margo

现版本的dolphindb不支持直接把一个dict类型的变量存到表里,但是可以用toStdJson把字典转化成字符串再存。得到的字符串可以用parseExpr().eval()再转化回来。

举个例子:

config = dict(STRING, ANY)
config[`name] = `dmc
config[`desc] = "minute factor"
config[`upper] = [`oles, `macd]
config[`ParamKeys] = [`win,`high,`times,`range]
config[`ParamValues] = [3,10,20,[`abc,`adc]]
// 字典转字符串
config_string = toStdJson(config)
// 字符串转字典
config_dict = parseExpr(config_string).eval()

不过要注意,dolphindb内对单个字符串的大小限制是16K。如果您的参数字典比较大,可以将一些固定数据类型和数量的参数拆分相互来,单独存放成表中的几列。对于以字符串数组为值的参数,比如只有字母、数字、下划线的变量名,可以考虑用特殊字符作为连接符拼接成一个长字符串,要使用时可以用split函数进行拆分。



请先 登录 后评论
  • 1 关注
  • 0 收藏,727 浏览
  • SaintM 提出于 2023-04-07 10:01

相似问题