ddb 服务 version : 2.00.9.1 2023.02.20 ; linux64
python==3.7
dolphindb库 version : 1.30.21.1
问题描述:
通过 ddb.tableAppender() 入库 dataframe 时,表中某列为 decimal 类型,入库到 ddb 后数据错误;
示例:
复现:
参考附件,包含了 py 和 ddb 所使用代码;test_ddb.py
参考 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)]