python api 使用 appender 入库 decimal 数据时,数据错误

ddb 服务 version : 2.00.9.1 2023.02.20 ; linux64

python==3.7 

dolphindb库 version : 1.30.21.1

问题描述:

        通过 ddb.tableAppender() 入库 dataframe 时,表中某列为 decimal 类型,入库到 ddb 后数据错误;

示例:

        attachments-2023-03-rXtqijjW641ab85293ee6.png

复现:

        参考附件,包含了 py 和 ddb 所使用代码;test_ddb.py

请先 登录 后评论

最佳答案 2023-03-24 14:32

参考 python API 教程 5.4.2 章节的说明, 上传的表中包含 Python decimal.Decimal 对象时,必须确保 DECIMAL 类型列的所有数据具有相同的小数位数,否则以第一行数据的精度为准,您的第一行数据精度为四位小数,因此 3 位小数的数据上传后会发生数据错误。

可以将源码中生成 decimal 类型的代码改为:

price_list = [Decimal(str(round(random.uniform(1, 1000),4))).quantize(decimal.Decimal("0.0000")) for _ in range(10)] + [Decimal(str(round(random.uniform(1, 100),4))).quantize(decimal.Decimal("0.0000")) for _ in range(10)]
请先 登录 后评论

其它 0 个回答